distinguish between primitive and not primitive