add ! in function define