Began to implement Effective Java tips:
Design for inheritance or prohibit it.
Check preconditions and throw RuntimeExceptions on violation.
Favor static factories over similar constructors.