added a recover catch so it can fail gracefully -- TODO impliment clean up functions
changed mode to executable