[WIP - Needs more tests] Idle state

Uploading so I can work on it at the office.