Compose implementation