separated classes into their own modules