revise controller