use push/pop state to save current state on suspend/resume