Refactor, get specs going

* Haven't tested yet