added primitive  check