prefer primitive