implement negated conditions
implement block check