compose
work on compose, demo