   (let [wrong (check-solution)
         rows-wrong (get wrong :rows-wrong)
         cols-wrong (get wrong :cols-wrong)
-        problem-def (dommy/attr (sel1 :#puzzle-table) "problem-def")
+        problem-def (attr (sel1 :#puzzle-table) "problem-def")
         server-id (get problem-def :id)]
     (if (and (empty? rows-wrong)
              (empty? cols-wrong))


(defn check-solution []
  "Returns true if current state of puzzle is a valid solution, false otherwise"
  (let [problem (cljs.reader/read-string (dommy/attr (sel1 :#puzzle-table) "problem-def"))
        hor-prob (get problem :left)
        ver-prob (get problem :top)
        hor-size (count ver-prob)

         num-tds-left (pad num-tds pad-length 0 [:td.nothing])
         num-tds-right(pad num-tds 0 pad-length [:td.nothing])
         cells (for [c (range row-length)]
                 [:td {:class (str "cell c" c " r" row-num)
                       :data-x c
                       :data-y row-num}])]
    (-> [(keyword (str "tr.row.row" row-num)) {:class ""}]
      (into num-tds-left)
      (into (add-thick-class cells))
