refactory
primitives are no longer boxed when written