tgeneral restructuring, use projectile for compiling