do not depend on reducible