Use macros for backwards compatibility

I'll leave the original non-macro example for dirty schedulers around
for a tutorial type introduction.