RoutineProvider实现