use Clojure's assert function instead of rolling my own by throwing an exception