Observer

This is totally wrong... You should have a filter checking all of this