hvo: user function