Added new files to comply with seperation of concerns.