use vary-meta to alter meta data

Small refactor and test.

http://clojuredocs.org/clojure_core/clojure.core/vary-meta