           [(conj parameterized-conditions (format "%s = ?" (name attribute))) (conj values value)]))
       [[] []]
       attributes)]
-    (apply vector (str-join " AND " parameterized-conditions) values)))
+    (apply vector (str-utils/str-join " AND " parameterized-conditions) values)))
 
 (defn find-records [model-name attributes]
   (let [[parameterized-where & values] (to-conditions attributes)

  (dosync (commute all-models-metadata assoc model-name (ref {}))))

(defmacro init-model [& options]
  (let [model-name (last (re-split #"\." (name (ns-name *ns*))))]
    (setup-model-metadata model-name)
    (let [optional-forms (defs-from-option-groups model-name options)]
    `(do

(ns clj-record.core
  (:require
    [clojure.contrib.sql :as sql]
    [clojure.contrib.str-utils :as str-utils])
  (:use (clj-record util config)))


(defn table-name [model-name]
