Optimise registration methods
Allow execute() to be overridden