Added user input, Preferences class, and parsing of input