revise some definition