strict constructors and tests to prove it