adding the ability to schedule or run on demand