Finish refactor, update tests
WIP 1
Add documentation for all methods

Prior to this commit, some methods were missing yardoc headers.
Now, all methods have a header which explains the intended function
of the method.