Pattern Observer