Value Object Library - http://javanarior.github.io/valueobject-library