Added a basic preference framework