moving is_numeric predicate to _util