Added documentation

Documentation of API, refactoring explanation, and changelog included.
Also one minor change to the code to remove a redundant method.