extract all build logic from Project into BuildService