should add @throws NullPointerException to related javadoc imo