a bunch of fixes / refactors. karma + e2e testing isn't working. run the scenario tests via /test/e2e/runner.html