allow nested handlers - means you have to reset history manually though