restructuring repository and build