move vector functions out to clojure-utils