Introduced DoMake() and DoRun() framework

This fixes some bugs to do with the default Make() and Run() functions
not being reloaded after being overridden.