split monolithic class