Added Documentation and Javadoc