Refactored project hierarchy to be more gradle friendly.