Removed uniqueness requirement for preferences
Added warnings, cleaned up interface