restructure for composer support