perform architecture for adding custom schedulers