       !(input.data("val").toString() == input.prop("checked").toString())
     else
       !(input.data("val").toString() == input.val().toString())
+
+  _stringified_meta: ->
+    if @meta?
+      JSON.stringify(@meta)
+    else
+      ""

      # TODO make this work with span and p
      $("div[data-k-uuid='" + @uuid + "'][data-attr='" + attr + "'], span[data-k-uuid='" + @uuid + "'][data-attr='" + attr + "'], p[data-k-uuid='" + @uuid + "'][data-attr='" + attr + "']").html(val)

  dirty_from_page: ->
    dirty = []
    $.each $("input[data-k-uuid='" + @uuid + "'], select[data-k-uuid='" + @uuid + "']"), (i, input) =>

      $("[data-k-uuid='" + @uuid + "'][data-attr='" + attr + "']").data("val", val)

  _append_data_model_to_page: ->
    model_div = "<div data-k-uuid=" + @uuid + " data-id=" + @id + " data-class=" + @snake_name + " data-meta=" + @_stringified_meta() + " ></div>"
    $("[data-kindred-model]").append(model_div)

  _input_dirty: (input) ->
