restructuring because composer