diff --git a/local/alpha/config/vufind/EmailProfiles.ini b/local/alpha/config/vufind/EmailProfiles.ini
new file mode 100644
index 0000000000000000000000000000000000000000..3c4996cdaa0baf75b8d9e5fd175d221e3bcb4cc0
--- /dev/null
+++ b/local/alpha/config/vufind/EmailProfiles.ini
@@ -0,0 +1,23 @@
+;####################################################################
+;##################### DO NOT DELETE THIS HEADER ####################
+;################### Leipzig University Library © 2015 ##############
+;
+; This is the default ALPHA-INI-file and inherits
+; all the settings from the INI-file defined in [Parent_Config] which
+; points to the default INI-file located in the folder vufind2/local
+;
+
+[Parent_Config]
+relative_path = ../../../config/vufind/EmailProfiles.ini
+
+; A comma-separated list of config sections from the parent which should be
+; completely overwritten by the equivalent sections in this configuration;
+; any sections not listed here will be merged on a section-by-section basis.
+;override_full_sections = "Languages,AlphaBrowse_Types"
+
+;
+;       Add ALPHA-specific customization after this header.
+;
+;##################### DO NOT DELETE THIS HEADER ####################
+;####################################################################
+
diff --git a/local/alpha/config/vufind/permissions.ini b/local/alpha/config/vufind/permissions.ini
new file mode 100644
index 0000000000000000000000000000000000000000..549310be873e2d46732544079721d76b574f48fe
--- /dev/null
+++ b/local/alpha/config/vufind/permissions.ini
@@ -0,0 +1,22 @@
+;####################################################################
+;##################### DO NOT DELETE THIS HEADER ####################
+;################### Leipzig University Library © 2015 ##############
+;
+; This is the default ALPHA-INI-file and inherits
+; all the settings from the INI-file defined in [Parent_Config] which
+; points to the default INI-file located in the folder vufind2/local
+;
+
+[Parent_Config]
+relative_path = ../../../config/vufind/permissions.ini
+
+; A comma-separated list of config sections from the parent which should be
+; completely overwritten by the equivalent sections in this configuration;
+; any sections not listed here will be merged on a section-by-section basis.
+;override_full_sections = "Languages,AlphaBrowse_Types"
+
+;
+;       Add ALPHA-specific customization after this header.
+;
+;##################### DO NOT DELETE THIS HEADER ####################
+;####################################################################
diff --git a/local/alpha/languages/PDA/de.ini b/local/alpha/languages/PDA/de.ini
new file mode 100644
index 0000000000000000000000000000000000000000..8dd50712ff742b8cc0749a00574a49e95bb89bf4
--- /dev/null
+++ b/local/alpha/languages/PDA/de.ini
@@ -0,0 +1,18 @@
+;####################################################################
+;##################### DO NOT DELETE THIS HEADER ####################
+;################### Leipzig University Library © 2015 ##############
+;
+; This is a default ALPHA-LANGUAGE-file and inherits
+; all the settings from the LANGUAGE-file defined in @parent_ini which
+; points to the default LANGUAGE-file located in the folder
+; vufind2/local/languages
+;
+
+@parent_ini = "../../languages/PDA/de.ini"
+
+;
+;       Add ALPHA-specific customization after this header.
+;
+;##################### DO NOT DELETE THIS HEADER ####################
+;####################################################################
+
diff --git a/local/alpha/languages/PDA/en.ini b/local/alpha/languages/PDA/en.ini
new file mode 100644
index 0000000000000000000000000000000000000000..8fd031f83fe015a4dd290ba4517959961ddbda53
--- /dev/null
+++ b/local/alpha/languages/PDA/en.ini
@@ -0,0 +1,18 @@
+;####################################################################
+;##################### DO NOT DELETE THIS HEADER ####################
+;################### Leipzig University Library © 2015 ##############
+;
+; This is a default ALPHA-LANGUAGE-file and inherits
+; all the settings from the LANGUAGE-file defined in @parent_ini which
+; points to the default LANGUAGE-file located in the folder
+; vufind2/local/languages
+;
+
+@parent_ini = "../../languages/PDA/en.ini"
+
+;
+;       Add ALPHA-specific customization after this header.
+;
+;##################### DO NOT DELETE THIS HEADER ####################
+;####################################################################
+
diff --git a/local/config/vufind/EmailProfiles.ini b/local/config/vufind/EmailProfiles.ini
new file mode 100644
index 0000000000000000000000000000000000000000..80e6b70db53d6f61936f4b254d8c131e8eb95782
--- /dev/null
+++ b/local/config/vufind/EmailProfiles.ini
@@ -0,0 +1,31 @@
+; These Email Profiles can be used for mailing forms etc.
+
+;[Acquisition]
+;to = team@finc.info
+;from_unknown = team@finc.info
+;subject_acquisition = "Ihr Auftrag: %s, %s"
+
+;[ReportError]
+;to = team@finc.info
+;to_name = "Finc Team"
+;from = team@finc.info
+;from_name = "Finc Team"
+;subject = "Fehlermeldung für Titel %s (%s)"
+
+;[EmailHoldJournal]
+;to = team@finc.info
+;to_name = "Finc Team"
+;from = team@finc.info
+;from_name = "Finc Team"
+;subject = "Zeitschriftenbestellung"
+
+; Profile for patron driven acquisition.
+;[Pda]
+; Destination email address to pda in-house service.
+;to = team@finc.info
+;to_name = "Finc Team"
+; Return email address
+;from = team@finc.info
+;from_name = "Finc Team"
+; Text snippet for email subject.
+;subject = "Ihr Auftrag: %s, %s, %s"
diff --git a/local/config/vufind/config.ini b/local/config/vufind/config.ini
index cf6a647f31d9737df8a3ddcb5bc5990ca4dba45f..fb41674fd38868890228618738f90f95b93c7ef6 100644
--- a/local/config/vufind/config.ini
+++ b/local/config/vufind/config.ini
@@ -1447,6 +1447,36 @@ max_tag_length = 64
 ;isil[] = "DE-15-292"
 ;bik = "952000-4"
 
+; This section contains all site related customization for finc
+;[CustomSite]
+; Combine more formats to one css class. If false first format entry will taken
+; to display icon symbol
+;combinedIcons   = false
+;namespace      = ubl
+;
+; Fields of study used as required information in forms such as Acquisiton and PDA:
+;field_of_study[] = misc
+;field_of_study[] = bio
+;field_of_study[] = geo
+;field_of_study[] = hist
+;field_of_study[] = art
+;field_of_study[] = ling
+;field_of_study[] = math
+;field_of_study[] = med
+;field_of_study[] = mus
+;field_of_study[] = nat
+;field_of_study[] = paed
+;field_of_study[] = phil
+;field_of_study[] = pol
+;field_of_study[] = psy
+;field_of_study[] = jur
+;field_of_study[] = soz
+;field_of_study[] = sport
+;field_of_study[] = vet
+;field_of_study[] = theo
+;field_of_study[] = ethno
+;field_of_study[] = wiwi
+
 ; This section contains all index related customizations for finc
 [CustomIndex]
 ; The indexExtension allows to select library specific index fields (e.g.
@@ -1479,7 +1509,7 @@ localMarcFieldOfLibraryMapping[] = "bas:985"
 ; localMarcFieldOfLibraryMapping
 ;localMarcFieldOfLibraryNamespace = "ubl"
 
-; This section configures the form for patrdon driven acquisition suggestions.
+; This section configures the form for acquisition suggestions.
 ;[Acquisition]
 ; Email address to receive the acquisition suggestions
 ;to = erwerbungsservice@ub.uni-leipzig.de
@@ -1487,10 +1517,6 @@ localMarcFieldOfLibraryMapping[] = "bas:985"
 ;from_unknown = katalog@ub.uni-leipzig.de
 ; Email subject
 ;subject_acquisition = "Ihr Auftrag: %s, %s"
-; Subjects that are shown in a dropdown menu on the acquisition form (the values will
-; be translated in the frontend and the email-templates, so make sure you have the
-; translations in your language files)
-;nepcategories = nep_misc, nep_bio, nep_geo, nep_hist, nep_art, nep_ling, nep_math, nep_med, nep_mus, nep_nat, nep_paed, nep_phil, nep_pol, nep_psy, nep_jur, nep_soz, nep_sport, nep_vet, nep_theo, nep_ethno, nep_wiwi
 
 ; This section allows to set resolver for certain content types for Marc field 856
 ; set in subfield $2 (refs #6554 and http://www.loc.gov/marc/bibliographic/bd856.html)
diff --git a/local/config/vufind/permissions.ini b/local/config/vufind/permissions.ini
new file mode 100644
index 0000000000000000000000000000000000000000..7a5212f3f7faaf01aa018fe4a63870d4b9c5da17
--- /dev/null
+++ b/local/config/vufind/permissions.ini
@@ -0,0 +1,126 @@
+; This file controls how permissions are assigned to roles within VuFind.
+;
+; Each section of the file contains a group of rules that grant permissions. The name
+; of the section is unimportant as long as each section has a unique name. This
+; section contains several keys:
+;
+; require    - Set to 'ALL' to require all conditions in the section to be met in
+;              order to grant the permission(s). Set to 'ANY' to allow any one or 
+;              more of the conditions to grant the permission(s). Defaults to 'ALL'
+;              if unset. Note that this rule is used for combining the output of
+;              permission provider services. When a single permission provider
+;              accepts multiple lines of configuration, the way those lines are
+;              combined may vary from provider to provider (see below).
+; permission - The name(s) of the permission(s) to grant. May be a single string or
+;              an array of strings.
+;
+; Any other keys in the section should be the names of permission provider services.
+; The values associated with these keys will be passed along to the services.
+; You can define your own permission providers, or use some of the following:
+;
+; ipRange     - Grant the permission to the single IP adresse or to the range.
+;               Accepts a single IP adresse or a range with a minus character without
+;               blanks as separator. Also partial addresses can be used (e.g. 192.168
+;               denotes 192.168.0.0-192.168.255.255) and IPv6 addresses are also 
+;               supported (unless PHP is compiled with IPv6 disabled).
+; ipRegEx     - Grant the permission to IP addresses matching the provided regular
+;               expression(s). Accepts a string or an array; if an array is passed,
+;               permission will be granted if ANY one of the expressions matches.
+; role        - Grant the permission automatically to the role or roles specified
+;               (accepts a string or an array). Note that VuFind uses 'guest' for
+;               logged-out users and 'loggedin' for all logged-in users. You may
+;               define additional roles with custom code.
+; serverParam - Grant the permission if request server params match the given rules.
+;               Accepts a string or an array; if an array is passed permission will
+;               be granted if ALL of the rules match. Rules are specified as
+;               <server param name> [modifier] <value> [<value 2> ... <value n>]
+;               with optional modifier ~ (match instead of string comparison, values
+;               are treated as regular expressions), ! (not) or !~ (no match). Only
+;               one of the values must match (OR).
+; shibboleth  - Same as serverParam with support for Shibboleth multi-valued
+;               attributes (values separated by semicolons). The IdP entityId can be
+;               referenced with idpentityid. Please note that only checking the IdP
+;               entityId is dangerous (no authorization, anybody with a valid login
+;               gets the permission) so this should always be combined with a second
+;               rule that checks an attribute.
+; username    - Grant the permission to logged-in users whose usernames match the
+;               specified value(s). Accepts a string or an array.
+;
+; Example configuration (grants the "sample.permission" permission to users named
+; admin1 or admin2, or anyone coming from the IP addresses 1.2.3.4 or 1.2.3.5):
+;
+; [sample.rules]
+; require = ANY
+; username[] = admin1
+; username[] = admin2
+; ipRegEx = "/1\.2\.3\.4|1\.2\.3\.5/"
+; ipRange[] = "1.2.3.4"
+; ipRange[] = "1.2.3.7-1.2.5.254"
+; permission = sample.permission
+;
+; List of permissions that you may wish to configure:
+;
+; access.AdminModule - Controls access to the admin panel (if enabled in config.ini)
+; access.DebugMode - Allows ?debug=true GET parameter to turn on debug mode
+; access.EDSExtendedResults - Controls visibility of protected EDS results
+; access.EITModule - Controls access to the EBSCO EIT module (if active)
+; access.StaffViewTab - Controls access to the staff view tab in record mode
+; access.SummonExtendedResults - Controls visibility of protected Summon results
+
+; Configuration for permitting PDA form action
+;[default.PDA]
+;role = loggedin
+;catUserType = UBL:pdaAccessGranted
+;permission = access.PDAForm
+
+; Show staff view for all users by default
+[default.StaffViewTab]
+role[] = guest
+role[] = loggedin
+permission = access.StaffViewTab
+
+; Example for dynamic debug mode
+;[default.DebugMode]
+;username[] = admin
+;permission = access.DebugMode
+
+; Example for EDS
+;[default.EDSModule]
+;ipRange[] = "127.0.0.1"
+;ipRange[] = "192.168.11"
+;permission = access.EDSExtendedResults
+
+; Examples for Shibboleth
+;
+; Only users that have either common-lib-terms and entityid from idp1 or 
+; member and entityid from idp2 may have access to EITModule
+;[shibboleth.EITModule1]
+;shibboleth[] = "entityid https://testidp1.example.org/idp/shibboleth"
+;shibboleth[] = "affiliation member@example.org"
+;permission = access.EITModule
+;
+;[shibboleth.EITModule2]
+;shibboleth[] = "entityid https://testidp2.example.org/idp/shibboleth"
+;shibboleth[] = "entitlement urn:mace:dir:entitlement:common-lib-terms"
+;permission = access.EITModule
+;
+; Only users with a staff affiliation can access the staff view tab
+;[shibboleth.StaffView]
+;shibboleth = "affiliation staff@example.org"
+;permission = access.StaffViewTab
+
+; Example for conditional filters (see [ConditionalHiddenFilters] in
+; searches.ini for details)
+;[conditionalFilter.MyUniversity]
+;require = ANY
+;ipRange[] = 1.2.3.1-1.2.3.254
+;role = loggedin
+;permission = conditionalFilter.MyUniversity
+
+; Examples for PrimoCentral (see [Institutions] section
+; in Primo.ini for details)
+;[default.primoOnCampusRule]
+;require = ANY
+;ipRange[] = 1.2.3.1-1.2.3.254 ; for the IP-range of your university's network
+;role = loggedin ; if you want to allow authenticated users to use Primo module
+;permission = primoOnCampus.MYINSTITUTION
diff --git a/local/dev/config/vufind/EmailProfiles.ini.sample b/local/dev/config/vufind/EmailProfiles.ini.sample
new file mode 100644
index 0000000000000000000000000000000000000000..5b1ada9133ff52b82150b8259ffe2c9c7bb70d60
--- /dev/null
+++ b/local/dev/config/vufind/EmailProfiles.ini.sample
@@ -0,0 +1,22 @@
+;####################################################################
+;##################### DO NOT DELETE THIS HEADER ####################
+;################### Leipzig University Library © 2015 ##############
+;
+; This is the default DEV-INI-file and inherits
+; all the settings from the INI-file defined in [Parent_Config] which
+; points to the default INI-file located in the folder vufind2/local
+;
+
+[Parent_Config]
+relative_path = ../../../config/vufind/EmailProfiles.ini
+
+; A comma-separated list of config sections from the parent which should be
+; completely overwritten by the equivalent sections in this configuration;
+; any sections not listed here will be merged on a section-by-section basis.
+;override_full_sections = "Acquisition"
+
+;
+;       Add DEV-specific customization after this header.
+;
+;##################### DO NOT DELETE THIS HEADER ####################
+;####################################################################
diff --git a/local/dev/config/vufind/permissions.ini.sample b/local/dev/config/vufind/permissions.ini.sample
new file mode 100644
index 0000000000000000000000000000000000000000..e2893bc5b94f28da10c42bd13e1e4b7c37492ef8
--- /dev/null
+++ b/local/dev/config/vufind/permissions.ini.sample
@@ -0,0 +1,22 @@
+;####################################################################
+;##################### DO NOT DELETE THIS HEADER ####################
+;################### Leipzig University Library © 2015 ##############
+;
+; This is the default DEV-INI-file and inherits
+; all the settings from the INI-file defined in [Parent_Config] which
+; points to the default INI-file located in the folder vufind2/local
+;
+
+[Parent_Config]
+relative_path = ../../../config/vufind/permissions.ini
+
+; A comma-separated list of config sections from the parent which should be
+; completely overwritten by the equivalent sections in this configuration;
+; any sections not listed here will be merged on a section-by-section basis.
+;override_full_sections = "Languages,AlphaBrowse_Types"
+
+;
+;       Add DEV-specific customization after this header.
+;
+;##################### DO NOT DELETE THIS HEADER ####################
+;####################################################################
diff --git a/local/dev/languages/PDA/de.ini b/local/dev/languages/PDA/de.ini
new file mode 100644
index 0000000000000000000000000000000000000000..aeb4c2a27c9f8af9351edd9419cfb2defeb75a57
--- /dev/null
+++ b/local/dev/languages/PDA/de.ini
@@ -0,0 +1,18 @@
+;####################################################################
+;##################### DO NOT DELETE THIS HEADER ####################
+;################### Leipzig University Library © 2015 ##############
+;
+; This is a default DEV-LANGUAGE-file and inherits
+; all the settings from the LANGUAGE-file defined in @parent_ini which
+; points to the default LANGUAGE-file located in the folder
+; vufind2/local/languages
+;
+
+@parent_ini = "../../languages/PDA/de.ini"
+
+;
+;       Add DEV-specific customization after this header.
+;
+;##################### DO NOT DELETE THIS HEADER ####################
+;####################################################################
+
diff --git a/local/dev/languages/PDA/en.ini b/local/dev/languages/PDA/en.ini
new file mode 100644
index 0000000000000000000000000000000000000000..4623eaafd29dd2d4ee60a14975d270cd6c39236e
--- /dev/null
+++ b/local/dev/languages/PDA/en.ini
@@ -0,0 +1,18 @@
+;####################################################################
+;##################### DO NOT DELETE THIS HEADER ####################
+;################### Leipzig University Library © 2015 ##############
+;
+; This is a default DEV-LANGUAGE-file and inherits
+; all the settings from the LANGUAGE-file defined in @parent_ini which
+; points to the default LANGUAGE-file located in the folder
+; vufind2/local/languages
+;
+
+@parent_ini = "../../languages/PDA/en.ini"
+
+;
+;       Add DEV-specific customization after this header.
+;
+;##################### DO NOT DELETE THIS HEADER ####################
+;####################################################################
+
diff --git a/local/languages/PDA/de.ini b/local/languages/PDA/de.ini
new file mode 100644
index 0000000000000000000000000000000000000000..6dbde3552ba1feafde1863e16db3c28010d1709f
--- /dev/null
+++ b/local/languages/PDA/de.ini
@@ -0,0 +1,61 @@
+; -----
+; field of study
+;------
+fos_misc  = "Allgemeines"
+fos_bio   = "Biologie"
+fos_geo   = "Geographie, Geowissenschaften"
+fos_hist  = "Geschichte"
+fos_art   = "Kunst"
+fos_ling  = "Literatur- und Sprachwissenschaft"
+fos_math  = "Mathematik, Informatik"
+fos_med   = "Medizin"
+fos_mus   = "Musik"
+fos_nat   = "Naturwissenschaften, Chemie, Physik, Technik"
+fos_paed  = "Pädagogik"
+fos_phil  = "Philosophie"
+fos_pol   = "Politik"
+fos_psy   = "Psychologie"
+fos_jur   = "Recht"
+fos_soz   = "Soziologie"
+fos_sport = "Sport"
+fos_vet   = "Tiermedizin"
+fos_theo  = "Theologie"
+fos_ethno = "Volks- und Völkerkunde"
+fos_wiwi  = "Wirtschaftswissenschaft"
+
+; -----
+; pda
+;------
+
+Acquisition = "Erwerbung"
+
+Please purchase = "Bitte beschaffen"
+
+pda_initial_text = "Dieser Titel ist noch nicht im Bestand der UB Leipzig. Studierende und Angehörige der Universität Leipzig können gebührenfrei einen Beschaffungsauftrag für die Universitätsbibliothek auslösen."
+pda_restriction_text = "Dieser Dienst steht nur Studierenden und Angehörigen der Universität Leipzig zur Verfügung."
+pda_interlibraray_loan_text = "Alternativ können Sie prüfen, ob der Titel über die Fernleihe zur Verfügung gestellt werden kann."
+pda_order_text = "Sie lösen für diesen Titel einen Beschaffungsauftrag aus."
+pda_price_text = "Der Titel kostet die Universitätsbibliothek Leipzig etwa :::PRICE:::."
+pda_delivery_text = "Die Lieferzeit beträgt in der Regel <strong>zwei bis vier Wochen</strong>."
+
+pda_form_statement_label = "Bitte begründen Sie Ihren Vorschlag"
+pda_form_field_of_study_label = "Fachgebiet"
+pda_form_field_of_study_text = "Bitte wählen Sie ein Fachgebiet"
+pda_form_interlibrary_button = "Fernleihe prüfen"
+pda_form_proposal_label = "Ihr Erwerbungsvorschlag"
+
+pda_tab_order_button = "Beschaffungsauftrag auslösen"
+pda_tab_interlibrary_button = "Verfügbarkeit über Fernleihe prüfen"
+pda_open_new_window = "Hinweis: Die Verfügbarkeit per Fernleihe wird extern, in einem neuen Fenster geprüft."
+
+pda_form_title = "Erwerbungsvorschlag"
+pda_form_subtitle = "Ihr Erwerbungsvorschlag"
+pda_form_suggestions_limit = "Bitte senden Sie pro Formular nur einen Erwerbungsvorschlag."
+
+pda_send_success = "Ihr Erwerbungsvoschlag wurde erfolgreich an die betreffende Dienststelle übermittelt."
+
+pda_error_statement_blank = "Bitte geben Sie eine Begründung an."
+pda_error_proposal_blank = "Bitte geben Sie einen Erwerbungsvorschlag an."
+pda_error_field_of_study_blank = "Bitte geben Sie ein Fachgebiet an."
+
+note_mandatory_fields = "Anmerkung: Mit einem * markierte Felder müssen ausgefüllt werden."
\ No newline at end of file
diff --git a/local/languages/PDA/en.ini b/local/languages/PDA/en.ini
new file mode 100644
index 0000000000000000000000000000000000000000..38bb4ddb61a5f498105277d526c1696433da2d81
--- /dev/null
+++ b/local/languages/PDA/en.ini
@@ -0,0 +1,61 @@
+; -----
+; field of study
+;------
+fos_misc  = "General"
+fos_bio   = "Biology"
+fos_geo   = "Geography, Geosciences"
+fos_hist  = "History"
+fos_art   = "Arts"
+fos_ling  = "Philology and Linguistics"
+fos_math  = "Mathematics and Computer Science"
+fos_med   = "Medicine"
+fos_mus   = "Music"
+fos_nat   = "Natural sciences, Chemistry, Physics, Engineering"
+fos_paed  = "Education"
+fos_phil  = "Philosophy"
+fos_pol   = "Political Science"
+fos_psy   = "Psychology"
+fos_jur   = "Law"
+fos_soz   = "Sociology"
+fos_sport = "Sport Science"
+fos_vet   = "Veterinary Medicine"
+fos_theo  = "Theology"
+fos_ethno = "Ethnology"
+fos_wiwi  = "Economics"
+
+; -----
+; pda
+;------
+
+Acquisition = "Acquisition"
+
+Please purchase = "Please purchase"
+
+pda_initial_text = "This title is not currently held by the Leipzig University Library. Students and members of Leipzig University may initiate a purchase free of charge."
+pda_restriction_text = "This services is only available for students and members of Leipzig University."
+pda_interlibraray_loan_text = "You may also check if this title is available via inter-library loan."
+pda_order_text = "You are about to initiate a purchase order for this title."
+pda_price_text = "The costs of approximately :::PRICE::: will be covered by the Leipzig University Library."
+pda_delivery_text = "The delivery time frame is about <strong>2-4 weeks</strong>."
+
+pda_form_statement_label = "Please give reasons for your suggestion"
+pda_form_field_of_study_label = "Field of study"
+pda_form_field_of_study_text = "Please select a field of study"
+pda_form_interlibrary_button = "Check interlibrary loans"
+pda_form_proposal_label = "Your acquisition proposal"
+
+pda_tab_order_button = "Initiate purchase order"
+pda_tab_interlibrary_button = "Check availability via interlibrary loans"
+pda_open_new_window = "Note: Interlibrary loan availability will be checked in a new window."
+
+pda_form_title = "Suggestions for acquisition"
+pda_form_subtitle = "Your acquisition proposal"
+pda_form_suggestions_limit = "Please send only one acquisition proposal at once."
+
+pda_send_success = "Your proposal for acquisition has been sent successfully."
+
+pda_error_statement_blank = "Reasons for suggestion must not be blank."
+pda_error_proposal_blank = "Proposal for acquisition must not be blank."
+pda_error_field_of_study_blank = "Field of study must not be blank."
+
+note_mandatory_fields = "Please note: All fields marked with an asterik * are required."
diff --git a/local/languages/de.ini b/local/languages/de.ini
index 8780fb5c3e9e44abee3bdc3ec491216b32c804e5..a516d862274a1bf1e6ce6a385a7e1a42ade895aa 100644
--- a/local/languages/de.ini
+++ b/local/languages/de.ini
@@ -1,8 +1,8 @@
 ; Formate entsprechend der format_map_de15.properties
 Book                               = Buch
 eBook                              = E-Book
-ElectronicBook                = E-Book
-ElectronicBookPart         = "E-Book-Kapitel"
+ElectronicBook                     = E-Book
+ElectronicBookPart                 = "E-Book-Kapitel"
 ElectronicJournal                  = "Elektronische Zeitschrift"
 Electronicjournal                  = "Elektronische Zeitschrift"
 ElectronicSerial                   = "Elektronische Zeitschrift"
@@ -1768,34 +1768,6 @@ Zhuang = Zhuang
 Zulu = Zulu
 Zuni = Zuni
 
-nep_misc = "Allgemeines"
-nep_bio = "Biologie"
-nep_geo = "Geographie, Geowissenschaften"
-nep_hist = "Geschichte"
-nep_art = "Kunst"
-nep_ling = "Literatur- und Sprachwissenschaft"
-nep_math = "Mathematik, Informatik"
-nep_med = "Medizin"
-nep_mus = "Musik"
-nep_nat = "Naturwissenschaften, Chemie, Physik, Technik"
-nep_paed = "Pädagogik"
-nep_phil = "Philosophie"
-nep_pol = "Politik"
-nep_psy = "Psychologie"
-nep_jur = "Recht"
-nep_soz = "Soziologie"
-nep_sport = "Sport"
-nep_vet = "Tiermedizin"
-nep_theo = "Theologie"
-nep_ethno = "Volks- und Völkerkunde"
-nep_wiwi = "Wirtschaftswissenschaft"
-
-Category = "Fachgebiet"
-Check interlibrary loans = "Fernleihe prüfen"
-Check availability via interlibrary loans = "Verfügbarkeit über Fernleihe prüfen"
-Initiate purchase order = "Beschaffungsauftrag auslösen"
-Please purchase = "Bitte beschaffen"
-
 ;------
 ;missing lines from en.ini (compiled from files in /usr/local/vufind2/languages, /usr/local/vufind2/local/dev/languages)
 ;------
@@ -1827,19 +1799,6 @@ guser_dunning_process = "User account is blocked due to a dunning process"
 ################### finc-spezifisch hinzugefuegt ##########################
 p. = S.
 
-Suggestions for acquisition = Erwerbungsvorschlag
-Your acquisition proposal = Ihr Erwerbungsvorschlag
-Subject area = Fachgebiet
-Please select a subject area = Bitte wählen Sie ein Fachgebiet
-Please give reasons for your suggestion = Bitte begründen Sie Ihren Vorschlag
-Please send only one form per acquisition proposal. = Bitte senden Sie pro Formular nur einen Erwerbungsvorschlag.
-acquisition_success = Ihr Erwerbungsvorschlag wurde erfolgreich gesendet.
-note_mandatory_fields = Anmerkung: Mit einem * markierte Felder müssen ausgefüllt werden.
-Reasons for suggestion not be blank = Bitte geben Sie eine Begründung an.
-Proposal for acquisition should not be blank = Bitte geben Sie einen Erwerbungsvorschlag an.
-Subject area should not be blank = Bitte geben Sie ein Fachgebiet an.
-acquisition_success = Ihr Erwerbungsvorschlag wurde erfolgreich gesendet.
-
 APAAI Citation = APA Zitierstil
 MLAAI Citation = MLA Zitierstil
 ISBD Citation = ISBD Zitierstil
@@ -1856,3 +1815,10 @@ footer_ezb = "Elektronische Zeitschriftenbibliothek (EZB)"
 footer_kvk = "Karlsruher Virtueller Katalog (KVK)"
 footer_dbis = "Datenbankinformationssystem (DBIS)"
 footer_nwb = "nwb-Datenbank"
+
+; source providers
+sid_3 = "Nielsen"
+sid_51 = "VuB"
+
+; Tab to Close-text for closing FNDTN ToolTips
+Tap to close = "Zum Schliessen antippen"
diff --git a/local/languages/en.ini b/local/languages/en.ini
index 7d21ed992294b2caf342a34beda9d920fca07bdf..4be81e701aa3cc5d8387dfee40bfb2b04a60c107 100644
--- a/local/languages/en.ini
+++ b/local/languages/en.ini
@@ -669,31 +669,6 @@ DE-Zi4 = "Zittau/Görlitz University of Applied Sciences"
 DE-Zwi2 = "University of Applied Sciences Zwickau"
 ;Dresden SLUB = "Sächsische Landesbibliothek & Staats- und Universitätsbibliothek Dresden (SLUB)"
 
-;select fields for NE-Print
-nep_misc = "Micellaneous"
-nep_bio = "Biology"
-nep_geo = "Geography, Geosciences"
-nep_hist = "History"
-nep_art = "Arts"
-nep_ling = "Literary and linguistics"
-nep_math = "Mathematics, Computer science"
-nep_med = "Human medicine"
-nep_mus = "Music"
-nep_nat = "Natural science, Chemistry, Physic, Engineering"
-nep_paed = "Pedagogy"
-nep_phil = "Philosophy"
-nep_pol = "Politic"
-nep_psy = "Psychology"
-nep_jur = "Law"
-nep_soz = "Sociology"
-nep_sport = "Sport science"
-nep_vet = "Veterinary medicine"
-nep_theo = "Theology"
-nep_ethno = "Ethnology"
-nep_wiwi = "Economics"
-
-Category = "Subject"
-
 ;------
 ;missing lines from de.ini (compiled from files in /usr/local/vufind2/languages, /usr/local/vufind2/local/dev/languages)
 ;------
@@ -1763,31 +1738,18 @@ Zapotec = Zapotec
 Zhuang = Zhuang
 Zulu = Zulu
 Zuni = Zuni
-Check interlibrary loans = Check interlibrary loans
-Check availability via interlibrary loans = Check availability via interlibrary loans
-Initiate purchase order = Initiate purchase order
-Please purchase = Please purchase
-
 
 ################### finc-spezifisch hinzugefuegt ##########################
 p. = p.
-Suggestions for acquisition = Suggestions for acquisition
-Your acquisition proposal = Your acquisition proposal
-Subject area = Subject area
-Please select a subject area = Please select a subject area
-Please give reasons for your suggestion = Please give reasons for your suggestion
-Please send only one form per acquisition proposal. = Please send only one form per acquisition proposal.
-acquisition_success = Your proposal for acquisition has been sent successfully.
-note_mandatory_fields = Please note: All fields marked with an asterik * are required.
-Reasons for suggestion not be blank = Reasons for suggestion not be blank
-Proposal for acquisition should not be blank = Proposal for acquisition should not be blank
-Subject area should not be blank = Subject area should not be blank
-acquisition_success = Your proposal for acquisition has been sent successfully.
 
 APAAI Citation = APA Citation
 MLAAI Citation = MLA Citation
 ISBD Citation = ISBD Citation
 
+;source provider
+sid_3 = "Nielsen"
+sid_51 = "VuB"
+
 ; Branding for Wiso etc
 SID48 = WISO - Online-Datenbank für Studium und Wissenschaft
 
@@ -1797,3 +1759,6 @@ footer_ezb = "Electronic Journals Library (EZB)"
 footer_kvk = "Karlsruhe Virtual Catalog (KVK)"
 footer_dbis = "Database Information System (DBIS)"
 footer_nwb = "Database nwb"
+
+; Tab to Close-text for closing FNDTN ToolTips
+Tap to close = "Tap to close"
\ No newline at end of file
diff --git a/module/finc/config/module.config.php b/module/finc/config/module.config.php
index 396d3e41314102d725bd2d26107799db7a418be6..3c35a3e05f643838d26d71ee5e2c29a46d502c52 100644
--- a/module/finc/config/module.config.php
+++ b/module/finc/config/module.config.php
@@ -8,8 +8,11 @@ $config = [
         ]
     ],
     'controllers' => [
+        'factories' => [
+            'record' => 'finc\Controller\Factory::getRecordController'
+        ],
         'invokables' => [
-            'my-research' => 'finc\Controller\MyResearchController',
+            'my-research' => 'finc\Controller\MyResearchController'
         ],
     ],
     'vufind' => [
@@ -26,6 +29,7 @@ $config = [
                     'solrdefault' => 'finc\RecordDriver\Factory::getSolrDefault',
                     'solrmarc' => 'finc\RecordDriver\Factory::getSolrMarc',
                     'solrmarcfinc' => 'finc\RecordDriver\Factory::getSolrMarcFinc',
+                    'solrmarcfincpda' => 'finc\RecordDriver\Factory::getSolrMarcFincPDA',
                     'solrmarcremote' => 'finc\RecordDriver\Factory::getSolrMarcRemote',
                     'solrmarcremotefinc' => 'finc\RecordDriver\Factory::getSolrMarcRemoteFinc',
                     'solrai' => 'finc\RecordDriver\Factory::getSolrAI',
@@ -35,6 +39,7 @@ $config = [
                 'invokables' => [
                     'additional' => 'finc\RecordTab\Additional',
                     'staffviewai' => 'finc\RecordTab\StaffViewAI',
+                    'acquisitionpda' => 'finc\RecordTab\AcquisitionPDA',
                 ],
             ],
         ],
@@ -65,6 +70,21 @@ $config = [
                 ],
                 'defaultTab' => null,
             ],
+            'finc\RecordDriver\SolrMarcFincPDA' => [
+                'tabs' => [
+                    /* 'Holdings' => 'HoldingsILS',*/
+                    'AcquisitionPDA' => 'AcquisitionPDA',
+                    'Description' => 'Description',
+                    'TOC' => 'TOC', 'UserComments' => 'UserComments',
+                    'Reviews' => 'Reviews', 'Excerpt' => 'Excerpt',
+                    'Preview' => 'preview',
+                    'HierarchyTree' => 'HierarchyTree', 'Map' => 'Map',
+                    'Similar' => 'SimilarItemsCarousel',
+                    'Details' => 'StaffViewMARC',
+                    'Additional' => 'Additional',
+                ],
+                'defaultTab' => null,
+            ],
             'finc\RecordDriver\SolrAI' => [
                 'tabs' => [
                     'Holdings' => 'HoldingsILS', 'Description' => 'Description',
@@ -80,27 +100,36 @@ $config = [
             ],
         ],
     ],
+    // Authorization configuration:
+    'zfc_rbac' => [
+        'vufind_permission_provider_manager' => [
+            'factories' => [
+                'catUserType' => 'finc\Role\PermissionProvider\Factory::getCatUserType',
+            ],
+        ],
+    ],
+];
+
+$nonTabRecordActions = [
+    'PDA'
 ];
 
+
+// Define record view routes -- route name => controller
+// Define record view routes once again to add new nonTabRecordActions
+$recordRoutes = [
+    'record' => 'Record'
+];
+
+
 // Define static routes -- Controller/Action strings
 $staticRoutes = [
     'MyResearch/Acquisition'
 ];
 
-// Build static routes
-foreach ($staticRoutes as $route) {
-    list($controller, $action) = explode('/', $route);
-    $routeName = str_replace('/', '-', strtolower($route));
-    $config['router']['routes'][$routeName] = [
-        'type' => 'Zend\Mvc\Router\Http\Literal',
-        'options' => [
-            'route'    => '/' . $route,
-            'defaults' => [
-                'controller' => $controller,
-                'action'     => $action,
-            ]
-        ]
-    ];
-}
+$routeGenerator = new \VuFind\Route\RouteGenerator($nonTabRecordActions);
+$routeGenerator->addRecordRoutes($config, $recordRoutes);
+//$routeGenerator->addDynamicRoutes($config, $dynamicRoutes);
+$routeGenerator->addStaticRoutes($config, $staticRoutes);
 
 return $config;
diff --git a/module/finc/src/finc/Controller/Factory.php b/module/finc/src/finc/Controller/Factory.php
new file mode 100644
index 0000000000000000000000000000000000000000..8396c31f817a3ea9cf417a54c8f31f8c82ba5eed
--- /dev/null
+++ b/module/finc/src/finc/Controller/Factory.php
@@ -0,0 +1,57 @@
+<?php
+/**
+ * Factory for controllers.
+ *
+ * PHP version 5
+ *
+ * Copyright (C) Villanova University 2014.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * @category VuFind
+ * @package  View_Helpers
+ * @author   Demian Katz <demian.katz@villanova.edu>
+ * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
+ * @link     https://vufind.org/wiki/development Wiki
+ */
+namespace finc\Controller;
+use Zend\ServiceManager\ServiceManager;
+
+/**
+ * Factory for controllers.
+ *
+ * @category VuFind
+ * @package  View_Helpers
+ * @author   Demian Katz <demian.katz@villanova.edu>
+ * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
+ * @link     https://vufind.org/wiki/development Wiki
+ *
+ * @codeCoverageIgnore
+ */
+class Factory
+{
+    /**
+     * Construct the RecordController.
+     *
+     * @param ServiceManager $sm Service manager.
+     *
+     * @return RecordController
+     */
+    public static function getRecordController(ServiceManager $sm)
+    {
+        return new RecordController(
+            $sm->getServiceLocator()->get('VuFind\Config')->get('config')
+        );
+    }
+}
\ No newline at end of file
diff --git a/module/finc/src/finc/Controller/MyResearchController.php b/module/finc/src/finc/Controller/MyResearchController.php
index 03264a411cd4332f6cf72fd4bb20c375ceffe03f..d7d389f6aaac81968f704fad90826a6d8b4eb38f 100644
--- a/module/finc/src/finc/Controller/MyResearchController.php
+++ b/module/finc/src/finc/Controller/MyResearchController.php
@@ -28,18 +28,18 @@
 namespace finc\Controller;
 
 use Zend\Validator\StringLength,
-    Zend\I18n\Validator\Int,
+    Zend\I18n\Validator\IsInt,
     finc\Mailer\Mailer;
 
 /**
- * Controller for the acqusition area.
+ * Controller for the user account area.
  *
- * @category VuFind2
+ * @category VuFind
  * @package  Controller
  * @author   Demian Katz <demian.katz@villanova.edu>
  * @author   Gregor Gawol <gawol@ub.uni-leipzig.de>
  * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
- * @link     http://vufind.org   Main Site
+ * @link     https://vufind.org Main Site
  */
 class MyResearchController extends \VuFind\Controller\MyResearchController
 {
@@ -59,21 +59,11 @@ class MyResearchController extends \VuFind\Controller\MyResearchController
      */
     private function _getSubjectList()
     {
-
         if (count($this->_subjectlist) <= 0) {
-            $this->_subjectlist = explode(
-                ",",
-                (isset($this->getConfig()->Acquisition->nepcategories)
-                    ? $this->getConfig()->Acquisition->nepcategories : '')
+            $this->_subjectlist = (isset($this->getConfig()->CustomSite->subject)
+                ? $this->getConfig()->CustomSite->subject->toArray() : []
             );
-
-            foreach ($this->_subjectlist as $key => $subject) {
-                // trim subject to avoid translation errors with preceding/trailing
-                // whitespaces
-                $this->_subjectlist[$key] = trim($subject);
-            }
         }
-
         return $this->_subjectlist;
     }
 
@@ -112,7 +102,7 @@ class MyResearchController extends \VuFind\Controller\MyResearchController
      */
     protected function processAcquisition($user)
     {
-        $validatorAlnum = new Int();
+        $validatorAlnum = new IsInt();
         $validatorString = new StringLength(['min' => 1]);
         $valueArr = [];
 
@@ -126,19 +116,19 @@ class MyResearchController extends \VuFind\Controller\MyResearchController
 
         if ($validatorAlnum->isValid($subject)) {
             $this->flashMessenger()->addMessage(
-                'Subject area should not be blank', 'error'
+                'PDA::pda_error_subject_blank', 'error'
             );
             $error = true;
         }
         if (!$validatorString->isValid($proposal)) {
             $this->flashMessenger()->addMessage(
-                'Reasons for suggestion not be blank', 'error'
+                'PDA::pda_error_proposal_blank', 'error'
             );
             $error = true;
         }
         if (!$validatorString->isValid($reasons)) {
             $this->flashMessenger()->addMessage(
-                'Proposal for acquisition should not be blank', 'error'
+                'PDA::pda_error_statement_blank', 'error'
             );
             $error = true;
         }
@@ -176,7 +166,7 @@ class MyResearchController extends \VuFind\Controller\MyResearchController
                             $config->Acquisition->subject_acquisition,
                             $this->translate($subject), $user->username
                         )
-                        : $this->translate('Suggestions for acquisition')
+                        : $this->translate('PDA::pda_form_title')
                 );
                 $from_unknown = (isset($config->Acquisition->from_unknown)
                     ? $config->Acquisition->from_unknown : '');
@@ -201,7 +191,7 @@ class MyResearchController extends \VuFind\Controller\MyResearchController
                     $message_html,
                     $message_text
                 );
-                $this->flashMessenger()->addMessage('acquisition_success', 'info');
+                $this->flashMessenger()->addMessage('PDA::pda_send_success', 'info');
             } catch (MailException $e) {
                 $this->flashMessenger()->addMessage($e->getMessage(), 'error');
             }
diff --git a/module/finc/src/finc/Controller/PdaTrait.php b/module/finc/src/finc/Controller/PdaTrait.php
new file mode 100644
index 0000000000000000000000000000000000000000..1110c535e53de21bd132136192724bdf92e8ca36
--- /dev/null
+++ b/module/finc/src/finc/Controller/PdaTrait.php
@@ -0,0 +1,247 @@
+<?php
+/**
+ * PDA Trait
+ *
+ * PHP version 5
+ *
+ * Copyright (C) Villanova University 2010.
+ * Copyright (C) Leipzig University Library 2015.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * @category VuFind
+ * @package  Controller
+ * @author   Demian Katz <demian.katz@villanova.edu>
+ * @author   Frank Morgner <morgnerf@ub.uni-leipzig.de>
+ * @author   André Lahmann <lahmann@ub.uni-leipzig.de>
+ * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
+ * @link     http://vufind.org   Main Site
+ */
+namespace finc\Controller;
+use VuFind\Exception\Mail as MailException,
+    Zend\Validator\StringLength,
+    Zend\Validator\Identical,
+    finc\Mailer\Mailer;
+
+/**
+ * PDA Trait
+ *
+ * @category VuFind
+ * @package  Controller
+ * @author   Demian Katz <demian.katz@villanova.edu>
+ * @author   Frank Morgner <morgnerf@ub.uni-leipzig.de>
+ * @author   André Lahmann <lahmann@ub.uni-leipzig.de>
+ * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
+ * @link     http://vufind.org   Main Site
+ */
+trait PdaTrait
+{
+    /**
+     * Profile to be used for email
+     */
+    //const PDA_EMAIL_PROFILE = 'Pda';
+
+    /**
+     * PDA action - controller method
+     *
+     * @todo Open issue: Implementation of accession/domain check of user by PAIA.
+     *
+     * @return \Zend\View\Model\ViewModel
+     */
+    public function pdaAction()
+    {
+        // Check with the set accessPermission if the user is authorized to use PDA
+        $accessPermission = 'access.PDAForm';
+
+        if (!($user = $this->getUser())) {
+            return $this->forceLogin();
+        }
+
+        $auth = $this->getAuthorizationService();
+        if (!$auth) {
+            throw new \Exception('Authorization service missing');
+        }
+
+        if (!$auth->isGranted($accessPermission)) {
+            $this->flashMessenger()->addMessage('PDA::pda_restriction_text', 'error');
+            $view = $this->createViewModel();
+            $view->setTemplate('record/pdamessage');
+            return $view;
+        }
+
+        // User is authorized to use PDA
+
+        // Start collecting params for PDA
+        $params = [
+            'username'  => trim($user->username),
+            'email'     => trim($user->email),
+            'firstname' => trim($user->firstname),
+            'lastname'  => trim($user->lastname)
+        ];
+
+        // Create view
+        $view = $this->createPDAEmailViewModel();
+
+        // Set up reCaptcha
+        //todo: testen!
+        $view->useRecaptcha = $this->recaptcha()->active('pda');
+
+        // Process form submission
+        if ($this->formWasSubmitted('submit', $view->useRecaptcha)) {
+
+            // Collect the data submitted by form
+            $params['field_of_study'] = !empty($view->pdaFieldOfStudy) ? $view->pdaFieldOfStudy : '';
+            $params['statement'] = !empty($view->pdaStatement) ? $view->pdaStatement : '';
+
+            // Validate data submitted by form
+            $isValid = true;
+            $validatorStrLength = new StringLength(['min' => 10]);
+            $validatorIdentical = new Identical('-1');
+
+            if (!$validatorStrLength->isValid($params['statement'])) {
+                $this->flashMessenger()
+                    ->addMessage('PDA::pda_error_statement_blank', 'error');
+                $isValid = false;
+            }
+            if ($validatorIdentical->isValid($params['field_of_study'])) {
+                $this->flashMessenger()
+                    ->addMessage('PDA::pda_error_field_of_study_blank', 'error');
+                $isValid = false;
+            }
+            if (!$isValid) {
+                $view->setTemplate('record/pdaform');
+                return $view;
+            }
+
+            // All params are valid, set timestamp for current params set
+            $params['timestamp'] = date('d.m.Y H:i');
+
+            // Attempt to send the email and show an appropriate flash message:
+            try {
+                $this->sendPdaEmail($params);
+                $this->flashMessenger()->addMessage('PDA::pda_send_success', 'success');
+                return $this->redirectToRecord();
+            } catch (MailException $e) {
+                $this->flashMessenger()->addMessage($e->getMessage(), 'error');
+            }
+        }
+
+        // Display the template:
+        $view->setTemplate('record/pdaform');
+        return $view;
+    }
+
+    /**
+     * Create a new ViewModel to use as a PDA-Email form.
+     *
+     * @param array  $params         Parameters to pass to ViewModel constructor.
+     *
+     * @return ViewModel
+     */
+    protected function createPDAEmailViewModel($params = null)
+    {
+        // Build view:
+        $view = $this->createViewModel($params);
+
+        // Load configuration:
+        $config = $this->getServiceLocator()->get('VuFind\Config')->get('config');
+        $view->fieldOfStudyList = isset($config->CustomSite->field_of_study)
+            ? $config->CustomSite->field_of_study->toArray() : [];
+
+        // Send parameters back to view so form can be re-populated:
+        if ($this->getRequest()->isPost()) {
+            $view->pdaFieldOfStudy = $this->params()->fromPost('pdaFieldOfStudy');
+            $view->pdaStatement = $this->params()->fromPost('pdaStatement');
+        }
+
+        return $view;
+    }
+
+    /**
+     * Send PDA order via e-mail.
+     *
+     * @param $params Data to be used for Email template
+     *
+     * @return void
+     * @throws MailException
+     */
+    protected function sendPdaEmail($params)
+    {
+        $emailProfile = $this->getEmailProfile('Pda');
+        $renderer = $this->getViewRenderer();
+
+        // Collect the records metadata
+        $keyMethodMapper = [
+            'id'            => 'getUniqueID',
+            'author'        => 'getCombinedAuthors',
+            'title'         => 'getTitle',
+            'price'         => 'getPrice',
+            'publisher'     => 'getPublishers',
+            'format'        => 'getFormats',
+            'language'      => 'getLanguages',
+            'publishDate'   => 'getPublicationDetails',
+            'isbn'          => 'getISBNs',
+            'physical'      => 'getPhysicalDescriptions',
+            'footnote'      => 'getFootnotes',
+            'source_id'     => 'getSourceID'
+        ];
+        $driver = $this->loadRecord();
+        foreach ($keyMethodMapper as $var => $method) {
+            $params[$var] = $driver->tryMethod($method);
+        }
+        $params['driver'] = $driver;
+
+        // Custom template for emails (html-only)
+        $bodyHtml = $renderer->render(
+            'Email/acquisitionpda-html.phtml', $params
+        );
+        // Custom template for emails (text-only)
+        $bodyPlain = $renderer->render(
+            'Email/acquisitionpda-plain.phtml', $params
+        );
+
+        // Build the subject
+        $subject = (isset($emailProfile->subject))
+            ? sprintf(
+                $emailProfile->subject,
+                $params['id'],
+                $this->translate('PDA::fos_' . $params['field_of_study']),
+                $params['username']
+            ) : $this->translate('PDA::Acquisition');
+
+        // Set reply address and name if available
+        $replyTo = isset($params['email']) ? $params['email'] : '';
+        $replyToName
+            = (isset($params['firstname']) && isset($params['lastname'])) && !empty($replyTo)
+            ? $params['firstname'] . ' ' . $params['lastname']
+            : '';
+
+        // Get mailer
+        $mailer = new Mailer(
+            $this->getServiceLocator()
+                ->get('VuFind\Mailer')->getTransport()
+        );
+
+        // Send the email
+        $mailer->sendTextHtml(
+            $emailProfile->to,
+            $emailProfile->from,
+            $replyTo,
+            $replyToName,
+            $subject,
+            $bodyHtml,
+            $bodyPlain
+        );
+    }
+}
diff --git a/module/finc/src/finc/Controller/RecordController.php b/module/finc/src/finc/Controller/RecordController.php
new file mode 100644
index 0000000000000000000000000000000000000000..237902a93db7e850c5603506d86b7bfa6e5dc767
--- /dev/null
+++ b/module/finc/src/finc/Controller/RecordController.php
@@ -0,0 +1,67 @@
+<?php
+/**
+ * Record Controller
+ *
+ * PHP version 5
+ *
+ * Copyright (C) Villanova University 2010.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * @category VuFind
+ * @package  Controller
+ * @author   Demian Katz <demian.katz@villanova.edu>
+ * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
+ * @link     https://vufind.org Main Site
+ */
+namespace finc\Controller;
+
+/**
+ * Record Controller
+ *
+ * @category VuFind
+ * @package  Controller
+ * @author   Demian Katz <demian.katz@villanova.edu>
+ * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
+ * @link     https://vufind.org Main Site
+ */
+class RecordController extends \VuFind\Controller\RecordController
+{
+    use PdaTrait;
+
+    /**
+     * Constructor
+     *
+     * @param \Zend\Config\Config $config VuFind configuration
+     */
+    public function __construct(\Zend\Config\Config $config)
+    {
+        // Call standard record controller initialization:
+        parent::__construct($config);
+    }
+
+    /**
+     * Returns the email profile configured in MailForms.ini
+     *
+     * @param $profile
+     * @return array
+     */
+    protected function getEmailProfile($profile)
+    {
+        $mailConfig
+            = $this->getServiceLocator()->get('VuFind\Config')->get('EmailProfiles');
+
+        return isset($mailConfig->$profile) ? $mailConfig->$profile : [];
+    }
+}
diff --git a/module/finc/src/finc/ILS/Driver/PAIA.php b/module/finc/src/finc/ILS/Driver/PAIA.php
index a3dc38904c27dcbb688c4ab24d5790af05423afb..66e0603af0b328a4a289b47cf1549b7823c8a3fe 100644
--- a/module/finc/src/finc/ILS/Driver/PAIA.php
+++ b/module/finc/src/finc/ILS/Driver/PAIA.php
@@ -725,7 +725,7 @@ class PAIA extends DAIA
      *      details - array of values returned by the getRenewDetails method
      *                identifying which items to renew
      *
-     * @return  array - An associative array with two keys:
+     * @return array - An associative array with two keys:
      *     blocks - An array of strings specifying why a user is blocked from
      *              renewing (false if no blocks)
      *     details - Not set when blocks exist; otherwise, an array of
@@ -921,7 +921,8 @@ class PAIA extends DAIA
             ? $user_response['email'] : '');
         $user['major']     = null;
         $user['college']   = null;
-
+        $user['type'] = (isset($user_response['type'])
+            ? $user_response['type'] : '');
         return $user;
     }
 
diff --git a/module/finc/src/finc/Mailer/Mailer.php b/module/finc/src/finc/Mailer/Mailer.php
index 3d00cdcd20a20c86595a86314e24abaed076ae9d..b0c4c12b67a247f2088acd3359efe95d4ff598e5 100644
--- a/module/finc/src/finc/Mailer/Mailer.php
+++ b/module/finc/src/finc/Mailer/Mailer.php
@@ -103,7 +103,8 @@ class Mailer extends \VuFind\Mailer\Mailer
             $mimeBody = new MimeMessage();
             $mimeBody->addPart($alternativePart);
 
-            $reply_to = $reply_name . '<' . $reply . '>';
+            //$reply_to = $reply_name . '<' . $reply . '>';
+            $reply_to = $reply;
 
             $message = $this->getNewTextHtmlMessage()
                 ->addFrom($from)
diff --git a/module/finc/src/finc/RecordDriver/Factory.php b/module/finc/src/finc/RecordDriver/Factory.php
index d34d7cf9e2c906da34696e3300e2ef715fe15c8d..8281c7f0be3df47be0ccef97da3eb5a89b4345f2 100644
--- a/module/finc/src/finc/RecordDriver/Factory.php
+++ b/module/finc/src/finc/RecordDriver/Factory.php
@@ -82,6 +82,29 @@ class Factory
         return $driver;
     }
 
+    /**
+     * Factory for SolrMarcPDA record driver.
+     *
+     * @param ServiceManager $sm Service manager.
+     *
+     * @return SolrMarcPDA
+     */
+    public static function getSolrMarcFincPDA(ServiceManager $sm)
+    {
+        $driver = new SolrMarcFincPDA(
+            $sm->getServiceLocator()->get('VuFind\Config')->get('config'),
+            null,
+            $sm->getServiceLocator()->get('VuFind\Config')->get('searches')
+        );
+        //$driver->attachILS(
+        //    $sm->getServiceLocator()->get('VuFind\ILSConnection'),
+        //    $sm->getServiceLocator()->get('VuFind\ILSHoldLogic'),
+        //    $sm->getServiceLocator()->get('VuFind\ILSTitleHoldLogic')
+        //);
+        $driver->attachSearchService($sm->getServiceLocator()->get('VuFind\Search'));
+        return $driver;
+    }
+
     /**
      * Factory for SolrMarcRemote record driver.
      *
diff --git a/module/finc/src/finc/RecordDriver/SolrMarcFincPDA.php b/module/finc/src/finc/RecordDriver/SolrMarcFincPDA.php
new file mode 100644
index 0000000000000000000000000000000000000000..eba0f0b63b6e561885e38f5b6d5138831d75fdd8
--- /dev/null
+++ b/module/finc/src/finc/RecordDriver/SolrMarcFincPDA.php
@@ -0,0 +1,102 @@
+<?php
+/**
+ * Model for PDA MARC records in Solr.
+ *
+ * PHP version 5
+ *
+ * Copyright (C) Villanova University 2010.
+ * Copyright (C) Leipzig University Library 2015.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * @category VuFind
+ * @package  RecordDrivers
+ * @author   Frank Morgner <morgnerf@ub.uni-leipzig.de>
+ * @author   André Lahmann <lahmann@ub.uni-leipzig.de>
+ * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
+ * @link     http://vufind.org/wiki/vufind2:record_drivers Wiki
+ */
+namespace finc\RecordDriver;
+
+use VuFindHttp\HttpServiceAwareInterface as HttpServiceAwareInterface,
+    Zend\Log\LoggerAwareInterface as LoggerAwareInterface;
+
+/**
+ * Model for PDA MARC records in Solr.
+ *
+ * @category VuFind
+ * @package  RecordDrivers
+ * @author   Frank Morgner <morgnerf@ub.uni-leipzig.de>
+ * @author   André Lahmann <lahmann@ub.uni-leipzig.de>
+ * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
+ * @link     http://vufind.org/wiki/vufind2:record_drivers Wiki
+ */
+class SolrMarcFincPDA extends SolrMarcFinc implements
+    HttpServiceAwareInterface, LoggerAwareInterface
+{
+    use \VuFindHttp\HttpServiceAwareTrait;
+    use \VuFind\Log\LoggerAwareTrait;
+
+    /**
+     * Get the price in Euro for the record.
+     *
+     * @return string Price in Euro for the record. Currency will be added in view
+     *                via SafeMoneyFormat View-Helper
+     */
+    public function getPrice()
+    {
+        // currency format should be conform to ISO 4217
+        $currency = $this->getFirstFieldValue('365', ['c']);
+        $price = $this->getFirstFieldValue('365', ['b']);
+        $ecbEuroUrl = "http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml";
+
+        if (!empty($currency) && !empty($price)) {
+            // if currency format is not EUR try to convert the value using daily
+            // updated xml of ECB
+            if ($currency != "EUR") {
+                try {
+                    $response = $this->httpService->get($ecbEuroUrl);
+                } catch (\Exception $e) {
+                    $this->debug("Could not retrieve Euro exchange rate from url:" . 
+                        $ecbEuroUrl . "\nExited with exception: " . 
+                        $e->getMessage());
+                }
+
+                if ($response->isSuccess()) {
+                    if (false !== ($xml = simplexml_load_string($response->getBody()))
+                    ) {
+                        foreach ($xml->Cube->Cube->Cube as $rate) {
+                            if ($rate['currency']->__toString() == $currency) {
+                                // conversion rate available for current currency, so
+                                // return the converted price
+                                return ((1 / $rate['rate']->__toString()) * $price);
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        return !empty($price) ? $price : '';
+    }
+
+    /**
+     * Do we have an attached ILS connection?
+     *
+     * @return bool
+     */
+    protected function hasILS()
+    {
+        return false;
+    }
+}
\ No newline at end of file
diff --git a/module/finc/src/finc/RecordTab/AcquisitionPDA.php b/module/finc/src/finc/RecordTab/AcquisitionPDA.php
new file mode 100644
index 0000000000000000000000000000000000000000..b4a3e96c886667e887b0e0af04dfdc69f3aa63dd
--- /dev/null
+++ b/module/finc/src/finc/RecordTab/AcquisitionPDA.php
@@ -0,0 +1,63 @@
+<?php
+/**
+ * Acquisition tab
+ *
+ * PHP version 5
+ *
+ * Copyright (C) Villanova University 2010.
+ * Copyright (C) Leipzig University Library 2015.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * @category VuFind2
+ * @package  RecordTabs
+ * @author   Demian Katz <demian.katz@villanova.edu>
+ * @author   Frank Morgner <morgnerf@ub.uni-leipzig.de>
+ * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
+ * @link     http://vufind.org/wiki/vufind2:record_tabs Wiki
+ */
+namespace finc\RecordTab;
+
+/**
+ * Holdings (ILS) tab
+ *
+ * @category VuFind2
+ * @package  RecordTabs
+ * @author   Demian Katz <demian.katz@villanova.edu>
+ * @author   Frank Morgner <morgnerf@ub.uni-leipzig.de>
+ * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
+ * @link     http://vufind.org/wiki/vufind2:record_tabs Wiki
+ */
+class AcquisitionPDA extends \VuFind\RecordTab\AbstractBase
+{
+    /**
+     * Get the on-screen description for this tab.
+     *
+     * @return string
+     */
+    public function getDescription()
+    {
+        return 'PDA::Acquisition';
+    }
+
+    /**
+     * Is this tab active?
+     *
+     * @return bool
+     */
+    public function isActive()
+    {
+        return true;
+    }
+}
\ No newline at end of file
diff --git a/module/finc/src/finc/RecordTab/Additional.php b/module/finc/src/finc/RecordTab/Additional.php
index c1b3b3ef793981d06d111c90f7302b98c5719ac4..da201140ad1ada6802e261266e2835d4df3a62ba 100644
--- a/module/finc/src/finc/RecordTab/Additional.php
+++ b/module/finc/src/finc/RecordTab/Additional.php
@@ -1,6 +1,6 @@
 <?php
 /**
- * Description tab
+ * Additional tab
  *
  * PHP version 5
  *
@@ -56,6 +56,6 @@ class Additional extends \VuFind\RecordTab\AbstractBase
      */
     public function isActive()
     {
-        return $this->getRecordDriver()->tryMethod('hasAdditionalItems');;
+        return $this->getRecordDriver()->tryMethod('hasAdditionalItems');
     }
 }
\ No newline at end of file
diff --git a/module/finc/src/finc/Role/PermissionProvider/CatUserType.php b/module/finc/src/finc/Role/PermissionProvider/CatUserType.php
new file mode 100644
index 0000000000000000000000000000000000000000..bd541c2145596c0d8b2e721f0ce7dcbef326a65a
--- /dev/null
+++ b/module/finc/src/finc/Role/PermissionProvider/CatUserType.php
@@ -0,0 +1,88 @@
+<?php
+/**
+ * Username permission provider for VuFind.
+ *
+ * PHP version 5
+ *
+ * Copyright (C) Villanova University 2007.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * @category VuFind2
+ * @package  Authorization
+ * @author   Demian Katz <demian.katz@villanova.edu>
+ * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
+ * @link     http://www.vufind.org  Main Page
+ */
+namespace finc\Role\PermissionProvider;
+use VuFind\Auth\ILSAuthenticator;
+use ZfcRbac\Service\AuthorizationService;
+
+/**
+ * Username permission provider for VuFind.
+ *
+ * @category VuFind2
+ * @package  Authorization
+ * @author   Demian Katz <demian.katz@villanova.edu>
+ * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
+ * @link     http://www.vufind.org  Main Page
+ */
+class CatUserType implements \VuFind\Role\PermissionProvider\PermissionProviderInterface
+{
+    /**
+     * Authorization object
+     *
+     * @var AuthorizationService
+     */
+    protected $auth;
+
+    /**
+     * ILSAuthenticator object
+     *
+     * @var ILSAuthenticator
+     */
+    protected $ilsAuth;
+
+    /**
+     * Constructor
+     *
+     * @param AuthorizationService $authorization    Authorization service
+     * @param ILSAuthenticator     $ILSAuthenticator ILSAuthenticator service
+     */
+    public function __construct(AuthorizationService $authorization, ILSAuthenticator $ILSAuthenticator)
+    {
+        $this->auth = $authorization;
+        $this->ilsAuth = $ILSAuthenticator;
+    }
+
+    /**
+     * Return an array of roles which may be granted the permission based on
+     * the options.
+     *
+     * @param mixed $options Options provided from configuration.
+     *
+     * @return array
+     */
+    public function getPermissions($options)
+    {
+        $patron = $this->ilsAuth->storedCatalogLogin();
+
+        if (isset($patron['type'])
+            && array_intersect($patron['type'], (array) $options)) {
+            return ['loggedin'];
+        }
+
+        return [];
+    }
+}
diff --git a/module/finc/src/finc/Role/PermissionProvider/Factory.php b/module/finc/src/finc/Role/PermissionProvider/Factory.php
new file mode 100644
index 0000000000000000000000000000000000000000..b19ca3f9f3a56014490ce936562626846a924652
--- /dev/null
+++ b/module/finc/src/finc/Role/PermissionProvider/Factory.php
@@ -0,0 +1,58 @@
+<?php
+/**
+ * Permission Provider Factory Class
+ *
+ * PHP version 5
+ *
+ * Copyright (C) Villanova University 2014.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * @category VuFind
+ * @package  Authorization
+ * @author   Demian Katz <demian.katz@villanova.edu>
+ * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
+ * @link     https://vufind.org/wiki/development:plugins:hierarchy_components Wiki
+ */
+namespace finc\Role\PermissionProvider;
+use Zend\ServiceManager\ServiceManager;
+
+/**
+ * Permission Provider Factory Class
+ *
+ * @category VuFind
+ * @package  Authorization
+ * @author   Demian Katz <demian.katz@villanova.edu>
+ * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
+ * @link     https://vufind.org/wiki/development:plugins:hierarchy_components Wiki
+ *
+ * @codeCoverageIgnore
+ */
+class Factory
+{
+    /**
+     * Factory for Username
+     *
+     * @param ServiceManager $sm Service manager.
+     *
+     * @return Username
+     */
+    public static function getCatUserType(ServiceManager $sm)
+    {
+        return new CatUserType(
+            $sm->getServiceLocator()->get('ZfcRbac\Service\AuthorizationService'),
+            $sm->getServiceLocator()->get('VuFind\ILSAuthenticator')
+        );
+    }
+}
diff --git a/module/finc/src/finc/View/Helper/Root/Factory.php b/module/finc/src/finc/View/Helper/Root/Factory.php
index 2dd01149e58bccf4d4868fabd5ff36f564824466..b63bc6db6104b014ee4159cc79e6723579443cf1 100644
--- a/module/finc/src/finc/View/Helper/Root/Factory.php
+++ b/module/finc/src/finc/View/Helper/Root/Factory.php
@@ -41,7 +41,6 @@ use Zend\ServiceManager\ServiceManager;
  */
 class Factory
 {
-
     /**
      * Construct the Record helper.
      *
@@ -56,6 +55,16 @@ class Factory
         );
     }
 
+    /**
+     * Construct the Record helper.
+     *
+     * @return RecordLink
+     */
+    public static function getInterlibraryLoanLink()
+    {
+        return new InterlibraryLoanLink();
+    }
+
     /**
      * Construct the Citation helper.
      *
diff --git a/module/finc/src/finc/View/Helper/Root/InterlibraryLoanLink.php b/module/finc/src/finc/View/Helper/Root/InterlibraryLoanLink.php
new file mode 100644
index 0000000000000000000000000000000000000000..129856e6be6e74350025974a1ae94458f16e36d0
--- /dev/null
+++ b/module/finc/src/finc/View/Helper/Root/InterlibraryLoanLink.php
@@ -0,0 +1,66 @@
+<?php
+/**
+ * Record link view helper
+ *
+ * PHP version 5
+ *
+ * Copyright (C) Villanova University 2010.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * @category VuFind2
+ * @package  View_Helpers
+ * @author   Demian Katz <demian.katz@villanova.edu>
+ * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
+ * @link     http://vufind.org/wiki/vufind2:developer_manual Wiki
+ */
+namespace finc\View\Helper\Root;
+
+use Zend\View\Helper\AbstractHelper;
+
+/**
+ * Record link view helper
+ *
+ * @category VuFind2
+ * @package  View_Helpers
+ * @author   Demian Katz <demian.katz@villanova.edu>
+ * @license  http://opensource.org/licenses/gpl-2.0.php GNU General Public License
+ * @link     http://vufind.org/wiki/vufind2:developer_manual Wiki
+ */
+class InterlibraryLoanLink extends AbstractHelper
+{
+
+    /**
+     * Given a record driver, generate a URL for interlibrary loans to SWB.
+     *
+     * @param \VuFind\RecordDriver\AbstractBase $driver Host Record.
+     *
+     * @return string
+     */
+    public function getSwbLink($driver)
+    {
+        $url_search = "http://flportal.bsz-bw.de/servlet/locator?sigel=15";
+        $url_default = "http://flportal.bsz-bw.de/jsp/start.jsp?sigel=15";
+
+        foreach (array('issn', 'isbn') as $signifier) {
+            $method = "getClean" . strtoupper($signifier);
+            $$signifier = $driver->$method();
+            if (!empty($$signifier)) {
+                return $url_search . "&" . $signifier . "=" . $$signifier;
+            }
+        }
+        return $url_default;
+    }
+}
+
diff --git a/module/finc/src/finc/View/Helper/Root/Record.php b/module/finc/src/finc/View/Helper/Root/Record.php
index 9e46537437d5c418f8554c4867529ec0da38571d..44e99fc98c401917a863c919cf562b6fd8dfae66 100644
--- a/module/finc/src/finc/View/Helper/Root/Record.php
+++ b/module/finc/src/finc/View/Helper/Root/Record.php
@@ -59,7 +59,7 @@ class Record extends \VuFind\View\Helper\Root\Record
     /**
      * Render the link of the type ISN.
      *
-     * @param array $issns    Array with ISSNS
+     * @param array $issns Array with ISSNS
      *
      * @return string
      */
diff --git a/module/finc/src/finc/View/Helper/Root/ResultFeed.php b/module/finc/src/finc/View/Helper/Root/ResultFeed.php
index d6cb2b1a29679f00afb807b2db93c69844e0d12b..64f9d2e0a5b572a6b1793733ee122b58ab91c864 100644
--- a/module/finc/src/finc/View/Helper/Root/ResultFeed.php
+++ b/module/finc/src/finc/View/Helper/Root/ResultFeed.php
@@ -44,7 +44,7 @@ class ResultFeed extends \VuFind\View\Helper\Root\ResultFeed
     /**
      * Support method to turn a record driver object into an RSS entry.
      *
-     * @param Feed                              $feed   Feed to update
+     * @param Feed $feed Feed to update
      * @param \VuFind\RecordDriver\AbstractBase $record Record to add to feed
      *
      * @return void
diff --git a/themes/finc/scss/default.scss b/themes/finc/scss/default.scss
index 5c9906123e1dc0fbd200e35ff7be0848b1fb657c..e04918b67feaae9329c35617010d33125d30b461 100644
--- a/themes/finc/scss/default.scss
+++ b/themes/finc/scss/default.scss
@@ -33,6 +33,21 @@ header.fixed { left:auto;max-width: $row-width; }
 
 .navbar-brand { margin: .5rem .5rem .5rem 0; }
 
+// Avoid Button groups being placed to far left (e.g. pda tab) - works for all other button groups too
+.button-group > li:first-of-type {margin-left: 0}
+// Avoid wavy underlines and other tooltip stylings on buttons
+.button {
+  &.has-tip,
+  &.has-tip:hover,
+  &.has-tip:focus {
+  border-bottom: none;
+  color: $button-font-color;
+  cursor:$cursor-pointer-value;
+  font-weight: 300;
+  }
+  &.has-tip.white {color: #fff}
+}
+
 // LIST VIEW
 // Source-id branding (WISO etc)
 .branding {display: none}
@@ -85,4 +100,15 @@ table.citation th {min-width: 18%}
   }
 }
 
+// FORMS
+form label {font-size: 1rem;}
+
+
+// ALERT BOXES
+.alert-box {font-size: 1rem}
 
+// MODALS
+// Make sure, distance to close-button is sufficient
+.modal-body .alert-box { margin-top: 1.5rem; }
+// Secondary close button
+.reveal-modal .secondary.close-reveal-modal { @include button-style($bg:$secondary-color); border-left-color: #fff; font-weight: 300; font-size: .8125rem; line-height: 15px; position: relative; right: auto; top: auto;}
\ No newline at end of file
diff --git a/themes/finc/templates/Email/acquisitionpda-html.phtml b/themes/finc/templates/Email/acquisitionpda-html.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..7d0cb87806ee5fccd34a6dbabc40060e6f99bb4f
--- /dev/null
+++ b/themes/finc/templates/Email/acquisitionpda-html.phtml
@@ -0,0 +1,146 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+    "http://www.w3.org/TR/html4/loose.dtd">
+<head>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
+    <title>Zeitschriftenbestellung</title>
+</head>
+<body style="font-family: Arial, Verdana, sans-serif;">
+<h2 style="padding:10px 0;">Benutzergesteuerte Erwerbung</h2>
+<table width="800" border="0">
+    <tr valign="top">
+        <td width="390">
+            Name: <strong><?= $lastname ?>, <?= $firstname ?></strong><br/>
+            Lesekarte-Nr.: <strong><?= $username ?></strong><br/>
+            Email: <a href="mailto:<?= $email ?>"><?= $email ?></a><br/>
+            <br/>
+            <? if ($statement): ?>
+                Begründung des Benutzers:
+                <br/><br/>
+                <span style="font-size: 12px"><?= $statement ?></span>
+                <br/><br/>
+            <? endif; ?>
+        </td>
+        <td width="20">&nbsp;</td>
+        <td width="390">
+            hat folgenden Titel bestellt:<br/>
+            <br/>
+            <strong><?= $title ?></strong><br/>
+            <? if ($author): ?>von
+                <? foreach ($author as $auth): ?>
+                    <?= $auth ?>
+                <? endforeach; ?>
+            <? endif; ?><br/>
+            <br/>
+            Link: <a href="<?=$this->serverUrl($this->recordLink()->getUrl($driver))?>" title="<?= $title ?>"><?=$this->serverUrl($this->recordLink()->getUrl($driver))?></a><br/>
+            Katalog-ID: <a href="<?= $this->serverUrl($this->recordLink()->getUrl($driver)) ?>"
+                           title="<?= $title ?>"><?= $id ?></a><br/>
+            <br/>
+            für das Fachgebiet: <?= $this->transEsc('PDA::bos_' . $field_of_study) ?><br/>
+            <br/>
+            <table>
+                <? if ($price): ?>
+                    <tr>
+                        <td width="100" style="font-size: 11px">Preis:</td>
+                        <td width="5">&nbsp;</td>
+                        <td style="font-size: 11px">
+                            <?= $this->safeMoneyFormat($price) ?>
+                        </td>
+                    </tr>
+                <? endif; ?>
+                <? if ($publisher): ?>
+                    <tr>
+                        <td style="font-size: 11px">Verlag:</td>
+                        <td width="5">&nbsp;</td>
+                        <td style="font-size: 11px">
+                            <? foreach ($publisher as $pub): ?>
+                                <?= $pub ?>
+                            <? endforeach; ?>
+                        </td>
+                    </tr>
+                <? endif; ?>
+                <? if ($format): ?>
+                    <tr>
+                        <td style="font-size: 11px">Format:</td>
+                        <td width="5">&nbsp;</td>
+                        <td style="font-size: 11px">
+                            <? foreach ($format as $for): ?>
+                                <?= $this->transEsc($for) ?>
+                            <? endforeach; ?>
+                        </td>
+                    </tr>
+                <? endif; ?>
+                <? if ($language): ?>
+                    <tr>
+                        <td style="font-size: 11px">Sprache:</td>
+                        <td width="5">&nbsp;</td>
+                        <td style="font-size: 11px">
+                            <? foreach ($language as $lang): ?>
+                                <?= $this->transEsc($lang) ?>
+                            <? endforeach; ?>
+                        </td>
+                    </tr>
+                <? endif; ?>
+                <? if ($publishDate): ?>
+                    <tr>
+                        <td style="font-size: 11px">veröffentlicht:</td>
+                        <td width="5">&nbsp;</td>
+                        <td style="font-size: 11px">
+                            <? foreach ($publishDate as $date): ?>
+                                <?= $date ?>
+                            <? endforeach; ?>
+                        </td>
+                    </tr>
+                <? endif; ?>
+                <? if ($isbn): ?>
+                    <tr>
+                        <td style="font-size: 11px">ISBN/ISN:</td>
+                        <td width="5">&nbsp;</td>
+                        <td style="font-size: 11px">
+                            <? foreach ($isbn as $isn): ?>
+                                <?= $isn ?>
+                            <? endforeach; ?>
+                        </td>
+                    </tr>
+                <? endif; ?>
+                <? if ($physical): ?>
+                    <tr>
+                        <td style="font-size: 11px">Beschreibung:</td>
+                        <td width="5">&nbsp;</td>
+                        <td style="font-size: 11px">
+                            <? foreach ($physical as $phys): ?>
+                                <?= $phys ?>
+                            <? endforeach; ?>
+                        </td>
+                    </tr>
+                <? endif; ?>
+                <? if ($footnote): ?>
+                    <tr>
+                        <td style="font-size: 11px">Fussnote:</td>
+                        <td width="5">&nbsp;</td>
+                        <td style="font-size: 11px">
+                            <? foreach ($footnote as $foot): ?>
+                                <?= $foot ?>
+                            <? endforeach; ?>
+                        </td>
+                    </tr>
+                <? endif; ?>
+                <? if ($source_id): ?>
+                    <tr>
+                        <td style="font-size: 11px">Quelle:</td>
+                        <td width="5">&nbsp;</td>
+                        <td style="font-size: 11px">
+                            <?= $this->transEsc('sid_' . $source_id) ?>
+                        </td>
+                    </tr>
+                <? endif; ?>
+            </table>
+        </td>
+    </tr>
+    <tr valign="top">
+        <td width="800" colspan="3">
+            Zeitpunkt der Bestellung: <?= $timestamp ?>
+        </td>
+    </tr>
+</table>
+</body>
+</html>
\ No newline at end of file
diff --git a/themes/finc/templates/Email/acquisitionpda-plain.phtml b/themes/finc/templates/Email/acquisitionpda-plain.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..7bd03ca2224ae9d39e7d801b7ffc8198ea2b9834
--- /dev/null
+++ b/themes/finc/templates/Email/acquisitionpda-plain.phtml
@@ -0,0 +1,70 @@
+== Benutzergesteuerte Erwerbung ==
+
+Name: <?= $lastname ?>, <?= $firstname ?>
+
+Lesekarte-Nr.: <?= $username ?>
+
+Email: <?= $email ?>
+
+hat folgenden Titel bestellt:
+
+<?= $title ?>
+
+<? if ($author): ?>
+    von <? foreach ($author as $au): ?><?= $au ?> <? endforeach; ?>
+<? endif; ?>
+
+Link: <?= $this->serverUrl($this->recordLink()->getUrl($driver)) ?>
+
+für das Fachgebiet: <?= $this->transEsc('PDA::bos_' . $field_of_study) ?>
+
+------------------------------------------
+
+<? if ($statement): ?>Begründung des Benutzers:
+
+    <?= $statement ?>
+<? endif; ?>
+
+------------------------------------------
+
+<? if ($price): ?>
+    Preis: <?= $this->safeMoneyFormat($price) ?>
+
+<? endif; ?>
+<? if ($publisher): ?>
+    Verlag: <? foreach ($publisher as $pub): ?><?= $pub ?> <? endforeach; ?>
+
+<? endif; ?>
+<? if ($format): ?>
+    Format: <? foreach ($format as $form): ?><?= $this->transEsc($form) ?> <? endforeach; ?>
+
+<? endif; ?>
+<? if ($language): ?>
+    Sprache: <? foreach ($language as $lang): ?><?= $this->transEsc($lang) ?> <? endforeach; ?>
+
+<? endif; ?>
+<? if ($publishDate): ?>
+    veröffentlicht: <? foreach ($publishDate as $date): ?><?= $date ?> <? endforeach; ?>
+
+<? endif; ?>
+<? if ($isbn): ?>
+    ISBN/ISN: <? foreach ($isbn as $isn): ?><?= $isn ?> <? endforeach; ?>
+
+<? endif; ?>
+<? if ($physical): ?>
+    Beschreibung: <? foreach ($physical as $desc): ?><?= $desc ?> <? endforeach; ?>
+
+<? endif; ?>
+<? if ($footnote): ?>
+    Fussnote: <? foreach ($footnote as $ftn): ?><?= $ftn ?> <? endforeach; ?>
+
+<? endif; ?>
+<? if ($source_id): ?>
+    Quelle: <?= $this->transEsc('sid_' . $source_id) ?>
+
+<? endif; ?>
+
+
+------------------------------------------
+
+Zeitpunkt der Bestellung: <?= $timestamp ?>
\ No newline at end of file
diff --git a/themes/finc/templates/RecordTab/acquisitionpda.phtml b/themes/finc/templates/RecordTab/acquisitionpda.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..a150d7327abc720d4d947ffc81d9cf044e37dadd
--- /dev/null
+++ b/themes/finc/templates/RecordTab/acquisitionpda.phtml
@@ -0,0 +1,28 @@
+<!-- recordtab - acquistionpda.phtml -->
+<?
+// Set page title.
+$this->headTitle(
+    $this->translate('PDA::Acquisition') . ': ' .
+    $this->driver->getBreadcrumb()
+);
+      // Get some variables
+      $id = $this->driver->getUniqueId();
+      $controllerClass = 'controller:' . $this->record($this->driver)->getController();
+?>
+      <div class="row collapse">
+        <div class="small-12 columns">
+          <h2><?= $this->transEsc('PDA::Acquisition') ?></h2>
+          <p><?= $this->transEsc('PDA::pda_initial_text') ?></p>
+          <p class="alert-box warning"><?= $this->transEsc('PDA::pda_restriction_text') ?></p>
+          <ul class="button-group">
+            <li>
+              <? /* Leave title in here -- it is used for the tooltip! - CK */ ?>
+              <a class="button small has-tip white" data-tooltip data-options="touch_close_text: '<?= $this->transEsc('Tap to close')?>'" aria-haspopup="true" title="<?= $this->transEsc('PDA::pda_open_new_window')?>" href="<?= $this->interlibraryloan()->getSwbLink($this->driver) ?>" target="_blank"><?= $this->transEsc('PDA::pda_tab_interlibrary_button') ?></a>
+            </li>
+            <li>
+              <a class="button small pda-button <?= $controllerClass ?>" data-lightbox href="<?= $this->url('record-pda', array('id' => $id)) ?>" rel="nofollow"><?= $this->transEsc('PDA::pda_tab_order_button') ?></a>
+            </li>
+          </ul>
+        </div>
+      </div>
+<!-- recordtab - acquistionpda.phtml - END -->
\ No newline at end of file
diff --git a/themes/finc/templates/footer.phtml b/themes/finc/templates/footer.phtml
index 04b454d5edb4837439f4cf18ff1aa16d15b63e07..649ef791b1b1d3875f35f589aef6dc861661559e 100644
--- a/themes/finc/templates/footer.phtml
+++ b/themes/finc/templates/footer.phtml
@@ -14,7 +14,7 @@
       <li><a href="<?=$this->url('alphabrowse-home')?>"><?=$this->transEsc('Browse Alphabetically')?></a></li>
       <li><a href="<?=$this->url('search-reserves')?>"><?=$this->transEsc('Course Reserves')?></a></li>
       <li><a href="<?=$this->url('search-newitem')?>"><?=$this->transEsc('New Items')?></a></li>
-      <!--<li><a href="<?=$this->url('myresearch-acquisition')?>"><?=$this->transEsc('Suggestions for acquisition')?></a></li>-->
+      <li><a href="<?=$this->url('myresearch-acquisition')?>"><?=$this->transEsc('Suggestions for acquisition')?></a></li>
     </ul>
   </li>
   <li>
diff --git a/themes/finc/templates/layout/layout.phtml b/themes/finc/templates/layout/layout.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..2ea62ca591284f0c8edb74bb5d25b3cfe1c030ce
--- /dev/null
+++ b/themes/finc/templates/layout/layout.phtml
@@ -0,0 +1,190 @@
+<?=$this->doctype('HTML5')?>
+<html lang="<?=$this->layout()->userLang?>" <? if ($this->layout()->rtl): ?>dir="rtl" <? endif; ?>>
+  <head>
+    <?$this->headThemeResources()?>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+    <meta name="viewport" content="width=device-width,initial-scale=1.0"/>
+    <?=$this->headMeta()?>
+    <?=$this->headTitle()?>
+    <?
+      // Set up OpenSearch link:
+      $this->headLink(
+        array(
+          'href' => $this->url('search-opensearch') . '?method=describe',
+          'type' => 'application/opensearchdescription+xml',
+          'title' => $this->transEsc('Library Catalog Search'),
+          'rel' => 'search'
+        )
+      );
+    ?>
+    <!-- RTL styling -->
+    <? /* should work out-of-the-box in FNDTN -
+        just change lang and dir in the <html class="no-js" lang="ar" dir="rtl">
+        and activate and change line 144 in foundation/_settings.scss to $text-direction: rtl; - CK */
+    ?>
+    <?=$this->headLink()?>
+    <?=$this->headStyle()?>
+    <?
+      if (!isset($this->renderingError)) {
+        // Add translation strings
+        $this->jsTranslations()->addStrings(
+          array(
+            'pda_send_success' => 'PDA::pda_send_success',
+            'add_tag_success' => 'add_tag_success',
+            'bulk_email_success' => 'bulk_email_success',
+            'bulk_noitems_advice' => 'bulk_noitems_advice',
+            'bulk_save_success' => 'bulk_save_success',
+            'close' => 'close',
+            'error_occurred' => 'An error has occurred',
+            'go_to_list' => 'go_to_list',
+            'libphonenumber_invalid' => 'libphonenumber_invalid',
+            'libphonenumber_invalidcountry' => 'libphonenumber_invalidcountry',
+            'libphonenumber_invalidregion' => 'libphonenumber_invalidregion',
+            'libphonenumber_notanumber' => 'libphonenumber_notanumber',
+            'libphonenumber_toolong' => 'libphonenumber_toolong',
+            'libphonenumber_tooshort' => 'libphonenumber_tooshort',
+            'libphonenumber_tooshortidd' => 'libphonenumber_tooshortidd',
+            'loading' => 'Loading',
+            'sms_success' => 'sms_success',
+            'number_thousands_separator' => ['number_thousands_separator', null, ',']
+          )
+        );
+        // Add libphonenumber.js strings
+        $this->jsTranslations()->addStrings(
+          array(
+              "Phone number invalid" => 'libphonenumber_invalid',
+              "Invalid country calling code" => 'libphonenumber_invalidcountry',
+              "Invalid region code" => 'libphonenumber_invalidregion',
+              "The string supplied did not seem to be a phone number" => 'libphonenumber_notanumber',
+              "The string supplied is too long to be a phone number" => 'libphonenumber_toolong',
+              "The string supplied is too short to be a phone number" => 'libphonenumber_tooshort',
+              "Phone number too short after IDD" => 'libphonenumber_tooshortidd'
+          )
+        );
+        // Deal with cart stuff:
+        $cart = $this->cart();
+        if ($cart->isActive()) {
+          $this->headScript()->appendFile("vendor/cookies.js");
+          $this->headScript()->appendFile("cart.js");
+          $domain = $cart->getCookieDomain();
+          $this->headScript()->appendScript(
+            'var cartCookieDomain = ' . (!empty($domain) ? "'$domain'" : 'false') . ';'
+          );
+          $this->jsTranslations()->addStrings(
+            array(
+              'addBookBag' => 'Add to Book Bag',
+              'bookbagFull' => 'bookbag_full_msg',
+              'bookbagMax' => $cart->getMaxSize(),
+              'bookbagStatusFull' => 'bookbag_full',
+              'confirmDelete' => 'confirm_delete',
+              'confirmEmpty' => 'bookbag_confirm_empty',
+              'itemsAddBag' => 'items_added_to_bookbag',
+              'itemsInBag' => 'items_already_in_bookbag',
+              'removeBookBag' => 'Remove from Book Bag',
+              'viewBookBag' => 'View Book Bag'
+            )
+          );
+        }
+        $this->headScript()->appendScript(
+          'var userIsLoggedIn = ' . ($this->auth()->isLoggedIn() ? 'true' : 'false') . ';'
+        );
+      }
+
+      // Session keep-alive
+      if ($this->KeepAlive()) {
+          $this->headScript()->appendScript('var keepAliveInterval = '
+            . $this->KeepAlive());
+          $this->headScript()->appendFile("keep_alive.js");
+      }
+    ?>
+    <?
+      $root = rtrim($this->url('home'), '/');
+      $translations = $this->jsTranslations()->getJSON();
+      $dsb = DEFAULT_SEARCH_BACKEND;
+      $setupJS = <<<JS
+VuFind.path = '{$root}';
+VuFind.defaultSearchBackend = '{$dsb}';
+VuFind.addTranslations({$translations});
+JS;
+      $this->headScript()->appendScript($setupJS);
+    ?>
+    <?=$this->headScript()?>
+  </head>
+  <body class="<?=$this->layoutClass('offcanvas-row')?><? if ($this->layout()->rtl): ?> rtl<? endif; ?>">
+    <? // Set up the search box -- there are three possible cases:
+      // 1. No search box was set; we should default to the normal box
+      // 2. It was set to false; we should display nothing
+      // 3. It is set to a custom string; we should display the provided version
+      // Set up default search box if no data was provided from the template;
+      // this covers case 1.  Cases 2 and 3 are then covered by logic below.
+      if (!isset($this->layout()->searchbox)) {
+        $this->layout()->searchbox = $this->render('search/searchbox.phtml');
+      }
+    ?>
+    <div class="row collapse">
+        <header role="banner" class="sticky contain-to-grid hide-for-print">
+          <a class="sr-only" href="#searchslots"><?=$this->transEsc('Skip to search') ?></a>
+            <a class="sr-only" href="#content"><?=$this->transEsc('Skip to content') ?></a>
+            <?=$this->render('header.phtml')?>
+                <nav class="nav searchbox large-12 large-centered columns hide-for-medium-up hide-for-print">
+                  <?=$this->layout()->searchbox ?>
+                </nav>
+                <? if((!isset($this->layout()->showBreadcrumbs) || $this->layout()->showBreadcrumbs == true)
+                  && !empty($this->layout()->breadcrumbs)
+                  && $this->layout()->breadcrumbs !== false
+                ): ?>
+                  <ul class="breadcrumbs large-12 large-centered columns hide-for-print">
+                  <? if(is_array($this->layout()->breadcrumbs)): ?>
+                    <? if(count($this->layout()->breadcrumbs) > 1): ?>
+                      <?=$this->render('breadcrumbs/multi.phtml', array(
+                          'parents' => $this->layout()->breadcrumbs,
+                          'title'   => $this->layout()->title,
+                          'from'    => $this->layout()->from
+                        )) ?>
+                    <? else: ?>
+                      <?=$this->render('breadcrumbs/default.phtml', array(
+                          'parents' => $this->layout()->breadcrumbs,
+                          'title'   => $this->layout()->title
+                        )) ?>
+                    <? endif; ?>
+                  <? else: ?>
+                    <?=$this->layout()->breadcrumbs ?>
+                  <? endif; ?>
+                  </ul>
+                <? endif; ?>
+         </header>
+    </div>
+
+    <div class="row">
+      <div id="content" role="main" class="main panel template-dir-<?=$this->templateDir?> template-name-<?=$this->templateName?>">
+        <div class="container">
+          <?=$this->layout()->content ?>
+        </div>
+      </div>
+    </div>
+    <div class="row">
+      <footer role="contentinfo" class="panel hide-for-print">
+        <div class="container">
+          <?=$this->render('footer.phtml')?>
+          <?=$this->layout()->poweredBy ?>
+        </div>
+      </footer>
+</div>
+<!-- MODAL IN CASE WE NEED ONE -->
+<div id="modal" class="reveal-modal medium hide-for-print" data-reveal tabindex="-1" role="dialog" aria-labelledby="modalTitle" aria-hidden="true">
+  <div class="modal-body"><?=$this->transEsc('Loading') ?>&nbsp;...</div>
+  <a class="close-reveal-modal" aria-label="Close"><span class="sr-only"><?=$this->transEsc('close') ?></span> &#215;</a>
+</div>
+<!-- MODAL - END -->
+
+<div class="offcanvas-toggle" data-toggle="offcanvas"><i class="fa"></i></div>
+<div class="offcanvas-overlay" data-toggle="offcanvas"></div>
+<?=$this->googleanalytics()?>
+<?=$this->piwik()?>
+<? /* Initializing call for FOUNDATION functions */ ?>
+    <script>
+        $(document).foundation();
+    </script>
+  </body>
+</html>
\ No newline at end of file
diff --git a/themes/finc/templates/myresearch/acquisition.phtml b/themes/finc/templates/myresearch/acquisition.phtml
index 1318bc92cd33359ffc71b40c17dbd54b89284897..c9774d6c92bacc5e53c30a56745cacf74358719a 100644
--- a/themes/finc/templates/myresearch/acquisition.phtml
+++ b/themes/finc/templates/myresearch/acquisition.phtml
@@ -1,26 +1,27 @@
 <!-- myresearch - acquisition.phtml -->
 <?
 // Set up page title:
-$this->headTitle($this->translate('Suggestions for acquisition'));
+$this->headTitle($this->translate('PDA::pda_form_title'));
 
 // Set up breadcrumbs:
-$this->layout()->breadcrumbs = '<li><a href="' . $this->url('myresearch-home') . '">' . $this->transEsc('Your Account') . '</a></li> <li class="active">' . $this->transEsc('Suggestions for acquisition') . '</li>';
+$this->layout()->breadcrumbs = '<li><a href="' . $this->url('myresearch-home') . '">' . $this->transEsc('Your Account') . '</a></li> <li class="active">' . $this->transEsc('PDA::pda_form_title') . '</li>';
 ?>
 
 <div class="row">
     <div class="<?=$this->layoutClass('mainbody')?>">
-        <h2><?=$this->transEsc('Your acquisition proposal') ?></h2>
+        <h2><?=$this->transEsc('PDA::pda_form_subtitle') ?></h2>
         <?=$this->flashmessages() ?>
         <form class="form-horizontal" method="post" action="" name="acquisitionForm">
-            <h6><?=$this->transEsc('Please send only one form per acquisition proposal.') ?></h6>
+            <h6><?=$this->transEsc('PDA::pda_form_suggestions_limit') ?></h6>
             <div class="form-group row">
-                <label class="col-sm-3 medium-3 columns control-label" for="acquisition_subject"><?=$this->transEsc('Subject area') ?><span class="required">*</span></label>
+                <label class="col-sm-3 medium-3 columns control-label" for="subject"><?=$this->transEsc('PDA::pda_form_branch_of_study_label') ?><span class="required">*</span></label>
                 <div class="col-sm-9 medium-9 columns">
                     <select name="subject" class="form-control auto">
-                        <option value="-1"><?=$this->transEsc('Please select a subject area') ?></option>
+                        <option value="-1"><?=$this->transEsc('PDA::pda_form_subject_text') ?></option>
                         <? if (isset($subjectlist) && is_array($subjectlist)): ?>
                             <? foreach ($subjectlist as $value): ?>
-                            <option value="<?=$value?>" <? if (isset($values['subject']) && ($values['subject'] != '-1') && ($values['subject'] == $value)): ?> selected="selected"<? endif; ?>><?=$this->transEsc($value)?></option>
+                                <option
+                                    value="<?= $value ?>" <? if (isset($values['subject']) && ($values['subject'] != '-1') && ($values['subject'] == $value)): ?> selected="selected"<? endif; ?>><?= $this->transEsc('PDA::subject_' . $value) ?></option>
                             <? endforeach; ?>
                         <? endif; ?>
                     </select>
@@ -30,7 +31,7 @@ $this->layout()->breadcrumbs = '<li><a href="' . $this->url('myresearch-home') .
                 </div>
             </div>
             <div class="form-group row">
-                <label class="col-sm-3 medium-3 columns control-label" for="acquistion_reasons"><?=$this->transEsc('Please give reasons for your suggestion') ?><span class="required">*</span></label>
+                <label class="col-sm-3 medium-3 columns control-label" for="acquistion_reasons"><?=$this->transEsc('PDA::pda_form_statement_label') ?><span class="required">*</span></label>
                 <div class="col-sm-9 medium-9 columns">
                     <textarea id="acquisition_reasons" type="text" cols="50" rows="5" name="reasons"><? if (isset($values['reasons']) && !empty($values['reasons'])): ?><?=$this->transEsc($values['reasons']) ?><? endif; ?></textarea>
                     <br />
@@ -40,9 +41,9 @@ $this->layout()->breadcrumbs = '<li><a href="' . $this->url('myresearch-home') .
                 </div>
             </div>
             <div class="form-group row">
-                <label class="col-sm-3 medium-3 columns control-label" for="acquistion_proposal"><?=$this->transEsc('Your acquisition proposal') ?><span class="required">*</span></label>
+                <label class="col-sm-3 medium-3 columns control-label" for="acquistion_proposal"><?=$this->transEsc('PDA::pda_form_proposal_label') ?><span class="required">*</span></label>
                 <div class="col-sm-9 medium-9 columns">
-                    <textarea id="acquisition_proposal" type="text" cols="50" rows="5" name="proposal"><? if (isset($values['proposal']) && !empty($values['proposal'])): ?><?=$this->transEsc($values['proposal']) ?><? endif; ?></textarea>
+                    <textarea id="acquisition_proposal" type="text" cols="50" rows="5" name="proposal"><?=(isset($values['proposal']) && !empty($values['proposal'])) ? $values['proposal'] : ''?></textarea>
                     <br />
                     <? /*if (isset($error) && in_array('proposal', $error)): ?>
                         <span class="error-form"><?=$this->transEsc('Proposal for acquisition should not be blank') ?></span>
@@ -56,7 +57,7 @@ $this->layout()->breadcrumbs = '<li><a href="' . $this->url('myresearch-home') .
             </div>
             <div class="form-group row">
                 <div class="col-sm-9 col-sm-offset-3 medium-9 columns medium-offset-3">
-                    <?=$this->transEsc('note_mandatory_fields') ?>
+                    <?=$this->transEsc('PDA::note_mandatory_fields') ?>
                 </div>
             </div>
         </form>
diff --git a/themes/finc/templates/record/pdaform.phtml b/themes/finc/templates/record/pdaform.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..b3b8f6d4991c6e96bf2591360970a07c6c31b89b
--- /dev/null
+++ b/themes/finc/templates/record/pdaform.phtml
@@ -0,0 +1,58 @@
+<!-- record - PDAFORM.phtml -->
+<?
+  // Set page title.
+  $this->headTitle($this->translate('PDA::Acquisition'));
+
+  // Set up breadcrumbs:
+  $this->layout()->breadcrumbs = '<li>' . $this->searchMemory()->getLastSearchLink($this->transEsc('Search'), '', '</li>')
+    . '<li>' . $this->recordLink()->getBreadcrumb($this->driver) . '</li>'
+    . '<li class="active">' . $this->transEsc('PDA::Acquisition') . '</li>';
+?>
+<h2><?=$this->transEsc('PDA::Acquisition') ?>: <span class="title-in-heading"><?=$this->escapeHtml($this->driver->getBreadcrumb())?></span></h2>
+<form method="post" name="acquisitionPDAForm" action="<?=$this->recordLink()->getActionUrl($this->driver, 'PDA')?>">
+  <?=$this->flashmessages()?>
+  <p>
+    <?=$this->translate('PDA::pda_order_text')?>
+    <?=(strlen($price = $this->driver->getPrice()) > 0) ? $this->translate('PDA::pda_price_text', [':::PRICE:::'=>$this->safeMoneyFormat($price)]) : ''?>
+    <?=$this->translate('PDA::pda_delivery_text')?>
+  </p>
+  <div class="row collapse">
+    <label class="medium-3 columns" for="pdaStatement"><?=$this->transEsc('PDA::pda_form_statement_label')?><span class="required">*</span>:</label>
+    <div class="medium-9 columns">
+      <textarea id="pdaStatement" class="auto" name="pdaStatement" rows="5" type="text" cols="50"><?=isset($this->pdaStatement) ? $this->pdaStatement : ''?></textarea>
+    </div>
+
+    <label class="medium-3 columns" for="pdaSubject"><?=$this->transEsc('PDA::pda_form_field_of_study_label') ?><span class="required">*</span>:</label>
+    <div class="medium-9 columns">
+      <select name="pdaFieldOfStudy" class="form-control">
+        <option value="-1"><?=$this->transEsc('PDA::pda_form_field_of_study_text')?></option>
+        <? if (isset( $this->fieldOfStudyList) && is_array( $this->fieldOfStudyList)): ?>
+          <? foreach ( $this->fieldOfStudyList as $value): ?>
+            <option value="<?=$value?>" <? if (!empty($this->pdaFieldOfStudy) && $value==$this->pdaFieldOfStudy): ?> selected="selected"<? endif; ?>><?= $this->transEsc('PDA::fos_' . $value) ?></option>
+          <? endforeach; ?>
+        <? endif; ?>
+      </select>
+    </div>
+    <div class="medium-9 columns medium-offset-3">
+      <span>
+        <?=$this->recaptcha()->html($this->useRecaptcha) ?>
+      </span>
+      <ul class="button-group">
+        <li>
+          <input type="submit" class="button small" role="button" name="submit" value="<?=$this->transEsc('Submit')?>"/>
+        </li>
+        <li>
+          <a class="button small has-tip" data-tooltip data-options="touch_close_text: '<?= $this->transEsc('Tap to close')?>'" aria-haspopup="true" title="<?= $this->transEsc('PDA::pda_open_new_window')?>" href="<?= $this->interlibraryloan()->getSwbLink($this->driver) ?>" target="_blank"><?= $this->transEsc('PDA::pda_tab_interlibrary_button') ?>
+          </a>
+        </li>
+        <li>
+          <button class="small secondary close-reveal-modal" href="#"><?=$this->transEsc('Reset')?></button>
+        </li>
+      </ul>
+      <p>
+        <?= $this->transEsc('PDA::note_mandatory_fields') ?>
+      </p>
+    </div>
+  </div>
+</form>
+<!-- record - PDAFORM.phtml end -->
\ No newline at end of file
diff --git a/themes/finc/templates/record/pdamessage.phtml b/themes/finc/templates/record/pdamessage.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..92abd70fccd5e444c683c8baf577d79e106e3b6c
--- /dev/null
+++ b/themes/finc/templates/record/pdamessage.phtml
@@ -0,0 +1,12 @@
+<!-- record - PDAMESSAGE.phtml -->
+<?
+  // Set page title.
+  $this->headTitle($this->translate('PDA::Acquisition'));
+
+  // Set up breadcrumbs:
+  $this->layout()->breadcrumbs = '<li>' . $this->searchMemory()->getLastSearchLink($this->transEsc('Search'), '', '</li>')
+    . '<li>' . $this->recordLink()->getBreadcrumb($this->driver) . '</li>'
+    . '<li class="active">' . $this->transEsc('PDA::Acquisition') . '</li>';
+?>
+<?=$this->flashmessages()?>
+<!-- record - PDAMESSAGE.phtml end -->
\ No newline at end of file
diff --git a/themes/finc/theme.config.php b/themes/finc/theme.config.php
index b272225e9f3ad698f14accfa4567fe5d0367a824..b80e47a13f99cc00b54fd34f6cd602acc3748fa9 100644
--- a/themes/finc/theme.config.php
+++ b/themes/finc/theme.config.php
@@ -4,6 +4,8 @@ return array(
     'helpers' => array(
         'factories' => array(
             'record' => 'finc\View\Helper\Root\Factory::getRecord',
+            'interlibraryloan' =>
+                'finc\View\Helper\Root\Factory::getInterlibraryLoanLink',
             'citation' => 'finc\View\Helper\Root\Factory::getCitation',
         ),
         'invokables' => array(
diff --git a/themes/foundation5/js/lightbox.js b/themes/foundation5/js/lightbox.js
index a37736d3efc885309dcda3d76951c146451f187b..cc003b34665e0d8c5e696f68734ccc8eed74f9ec 100644
--- a/themes/foundation5/js/lightbox.js
+++ b/themes/foundation5/js/lightbox.js
@@ -70,7 +70,7 @@ VuFind.register('lightbox', function() {
     if ('undefined' == typeof type) {
       type = 'info';
     }
-    _html('<div class="alert-box '+type+'">'+message+'</div><button class="button small close-reveal-modal">' + VuFind.translate('close') + '</button>');
+    _html('<div class="alert-box '+type+'">'+message+'</div><a class="close-reveal-modal"><span class="sr-only">' + VuFind.translate('close') + '</span></a>');
     _modal.foundation('reveal', 'open');
   };
   var flashMessage = function(message, type) {