Use snapshots when computing states
Implemented WakeupMonitor