Manual update events for less CPU usage