#8 added JavaDocs