Added documentation and constructor