implemented snoopers (but i don't like the name)