Combines a refactor of the runner module and a bit of the session module for clarity and maintainability, and a fix for #21. Fixes #21