Breaking out functionality into seperate files