feat(preferences): frontend logic for user preferences