Having to check RunCommand to test whether it's runnable I think confirms that the inheritance is bad. Why not simply add your `Error` field to BaseJob and check for that?