initial version
Added preference form and associated logic
Added support for preferences
Initial support for preferences, WIP