revise function