Preferences support

Ready for implementing the user customization.