Rewrote my integration of the MacroManager class