only run the user function when it's there.
minor