Javadoc @version and @author
Remove offensive comment
Introduce Objects.requirenonnull
Remove equals(), introduce better method
Remove unnecessary exc, better argument handling
Replace factory mets with ctors
Tests with when/given/then
Remove hashcode - not needed