added more detailed java doc