added unmonitor method as a more sane way to release the idle handler and cleanup