invariants over constructors still not working