factored primitive defintions out into their own source files