reorganized for composer support