Adds basic reset
Refactors out full reset code from necessary reset code
Merge branch 'reset'

* reset:
  Refactors out full reset code from necessary reset code
  Adds basic reset

Closes #6