add observer pattern matcher #5