working on leave()