have separate check_applicability method