Suspend/resume functionality

Asking for code review - don't merge yet.