Comments added.
Few unit tests added. Not yet executed.