Abstract handling of primitives away from init