initial commit. Primitives provisionally working