restructure project to support build