assertions and constructors