Add runner

@tlunter Sorry this is huge, take as much time as you need. Luckily, about 2/3 of the additions are specs, which you can gloss over if you like (however, it is neat to see the macros in action).