added documentation and removed some incorrect comments, should contain 0 implementation changes