composable events