Added comments, rearranged

Moved some methods around to make more sense to reader (More linear).
Added some comments as well.