refactor GUI & upgrade javadoc