extract scope class
add explicit guard method to pickup custom pattern
use array-friendly syntax