do not depend on assert