refactored of create composer