add javadoc, rename interfaces