split TestProjectGen into more classes