cursor changing action is now in seperate IO monad using doIOaction