 Sonrai.Fields.DateTimeField = (options) ->
   class _Field extends Sonrai.Fields.BaseField(options)
     validate: (value) ->
-      if not value?
-        return true
-      if value instanceof Date
-        return true and (super value)
-      return false
+      if value? and not value instanceof Date
+        return false
+      return true and (super value)
 
     serialize: ->
       if @value?

      return @value

    validate: (value) ->
      return true

    set: (value) ->

Sonrai.Fields.StringField = (options) ->
  class _Field extends Sonrai.Fields.BaseField(options)
    validate: (value) ->
      if value? and typeof value != 'string'
        return false
      return true and (super value)

  return _Field

Sonrai.Fields.NumberField = (options) ->
  class _Field extends Sonrai.Fields.BaseField(options)
    validate: (value) ->
      if value? and isNaN(Number(value))
        return false
      return true and (super value)

