split up source files into modules