rule matcher and more