add Compose function