Added documentation and annotations