move to os detection predicates