FEATURE: snoop is optional
FEATURE: add analyzer