improved and refactored the entire documentation using JavaDoc style