implemented user defaults