major reorganization to make this into a composer project