implement composers
update
add tests
add sample