updated with java doc comments