Refactor runinboud/runnightly modules

I'm a bit hesistant to use techniques like this, as they're somewhat magical and hard to understand. I wonder if we just need to rejigger the class hierarchy a bit? Or maybe use a factory function to return a class with the right kinds of properties?