       if field.max
         max = field.max
         max = max.call() if typeof max is "function"
-        result[k] = makeText(max, Math.round(max / 10))
+        result[k] = getFakeTextCallback(k, max)
       else
-        result[k] = makeText()
+        result[k] = getFakeTextCallback(k)
       continue
     if field.type.name is "Number"
       min = 0

    if field.type.name is "Boolean"
      result[k] = !!Math.round(Math.random())
      continue
  normalizedResult = {}
  for k of result
    namespace = k.split(".")
    # stupid code, sorry
    if namespace.length is 1
      normalizedResult[namespace[0]] = result[k]
    else if namespace.length is 2
      normalizedResult[namespace[0]][namespace[1]] = result[k]
    else if namespace.length is 3
      normalizedResult[namespace[0]][namespace[1]][namespace[2]] = result[k]
    else
      throw new Error("Current version is support only 3 level of namespace")
  normalizedResult

makeFakeText = (len, count) ->
  len = len || 21
  count = +count
  text = ""
