diff --git a/loanpy/src/loan/conf.py b/loanpy/src/loan/conf.py
index 16d4bc7b8a30c1711f23eb02bf2ef888286c7490..68c36d8d5ace019ef8d8ef4ff47a7b4187b75f18 100644
--- a/loanpy/src/loan/conf.py
+++ b/loanpy/src/loan/conf.py
@@ -1,28 +1,39 @@
 import linkahead as db
+import os
+import configparser
+import importlib.resources as pkg_resources
 
+default_config_path = pkg_resources.path(__package__, 'default_config.ini')
+user_config_path = os.path.expanduser('~/.linkahead_loan')
+config = configparser.ConfigParser()
+config.read([default_config_path, user_config_path])
+rts = config['RecordTypes']
+ps = config['Properties']
 # RecordTypes
-BOX = db.RecordType(name="Box")
-PERSON = db.RecordType(name="Person")
-LOAN = db.RecordType(name="Loan")
+
+BOX = db.RecordType(name=rts['BOX'])
+PERSON = db.RecordType(name=rts['PERSON'])
+LOAN = db.RecordType(name=rts['LOAN'])
+
 # Properties
-FIRST_NAME = db.Property(name="firstName", datatype=db.TEXT)
-LAST_NAME = db.Property(name="lastName", datatype=db.TEXT)
-EMAIL = db.Property(name="email", datatype=db.TEXT)
-LOCATION = db.RecordType(name="Location")
-DESTINATION = db.Property(name="LoanLocation", datatype="Location")
-RETURNLOCATION = db.Property(name="ReturnLocation", datatype="Location")
-COMMENT = db.Property(name="comment", datatype=db.TEXT)
-EXHAUST_CONTENTS = db.Property(name="exhaustContents", datatype=db.BOOLEAN)
-BORROWER = db.Property(name="Borrower", datatype=PERSON.name)
-CONTENT = db.Property(name="Content", datatype=db.TEXT)
-LOAN_REQUESTED = db.Property(name="loanRequested", datatype=db.DATETIME)
-EXPECTED_RETURN = db.Property(name="expectedReturn", datatype=db.DATETIME)
-LOAN_ACCEPTED = db.Property(name="loanAccepted", datatype=db.DATETIME)
-LENT = db.Property(name="lent", datatype=db.DATETIME)
-RETURN_REQUESTED = db.Property(name="returnRequested", datatype=db.DATETIME)
-RETURN_ACCEPTED = db.Property(name="returnAccepted", datatype=db.DATETIME)
-RETURNED = db.Property(name="returned", datatype=db.DATETIME)
-BOX_NUMBER = db.Property(name="Number", datatype=db.TEXT)
+FIRST_NAME = db.Property(name=ps['FIRST_NAME'], datatype=db.TEXT)
+LAST_NAME = db.Property(name=ps['LAST_NAME'], datatype=db.TEXT)
+EMAIL = db.Property(name=ps['EMAIL'], datatype=db.TEXT)
+LOCATION = db.RecordType(name=rts['LOCATION'])
+DESTINATION = db.Property(name=ps['DESTINATION'], datatype=rts['LOCATION'])
+RETURNLOCATION = db.Property(name=ps['RETURNLOCATION'], datatype=rts['LOCATION'])
+COMMENT = db.Property(name=ps['COMMENT'], datatype=db.TEXT)
+EXHAUST_CONTENTS = db.Property(name=ps['EXHAUST_CONTENTS'], datatype=db.BOOLEAN)
+BORROWER = db.Property(name=ps['BORROWER'], datatype=rts['PERSON'])
+CONTENT = db.Property(name=ps['CONTENT'], datatype=db.TEXT)
+LOAN_REQUESTED = db.Property(name=ps['LOAN_REQUESTED'], datatype=db.DATETIME)
+EXPECTED_RETURN = db.Property(name=ps['EXPECTED_RETURN'], datatype=db.DATETIME)
+LOAN_ACCEPTED = db.Property(name=ps['LOAN_ACCEPTED'], datatype=db.DATETIME)
+LENT = db.Property(name=ps['LENT'], datatype=db.DATETIME)
+RETURN_REQUESTED = db.Property(name=ps['RETURN_REQUESTED'], datatype=db.DATETIME)
+RETURN_ACCEPTED = db.Property(name=ps['RETURN_ACCEPTED'], datatype=db.DATETIME)
+RETURNED = db.Property(name=ps['RETURNED'], datatype=db.DATETIME)
+BOX_NUMBER = db.Property(name=ps['BOX_NUMBER'], datatype=db.TEXT)
 
 # Other Strings
 # TODO: Adapt datamodel and remove name override