General cleanup and adding some doc blocks
Adding more doc blocks
Adding more doc blocks
Adding some unit tests
Adding more tests