Much better/cleaner primitives API