initial implementation, won't work for primitives, began readme