add three constract enhancement methods