Documentation added. Needs some cleanup and checking for correct nomenclature. Set methods needs to be checked and removed.