non-prim but use prim