using observer

problem:
can't pass parameter to the callback function