add more javadocs