reviewed, javaDocs added