[WIP?] Simulator cleanup

Current status includes code cleanup that fixes #63. Also flag a couple of TODOs for future improvements.

Might later add stuff for #65, if people think that suggestion is a good approach.