patterns are pluggable