updated package structure, formatting, javadoc