some javadoc- not complete