Added documentation. Note that the auto generated code comments doesn't work properly