added ability to compose