refactor all execution methods out into a common mixin module