prototype for a function_observer