prototype: add dot prod and vestigial cross prod