update to new event system; a lot of small optimization
use of device.enable() for the pause system