refactory pattern hunter