starting to break functions into their own classes/objects