modify user function OK