Rework off() to work with Marlin