refactor queryable api with extensions for a more composable named query interface