anopy refactoring + add JavaDoc