moving compose task into its own use case