separated classes into different modules