Did some commenting and rewrote objects to be more extensible