abstracted input into its own file
added concept of a data store, also optimzied it