updating javadoc and cleaning up code for interfaces and implementations