Created models based on data types, refactored unit tests and exisiting code accordingly