Implemented Full API. Added some more JavaDoc.