     # Set new value and call onChange handler
     @setState {value}, @props.onChange if value? and value isnt @state.value
   
-  changeValue: (fn)->
-    {format, onChange} = @props
-    {value} = @state
-    date = moment value, format
-    fn.call date
-    @setValue date.format format
+  modifyValue: (fn)->
+    datetime = do @getMoment
+    fn.call datetime
+    @setValue datetime.format @props.format
   
   parseFormat: (format)->
     format.split formatRegex

    PickerMixin
  ]
  
  prevMon: -> @changeValue -> @subtract 1, "M"
    
  nextMon: -> @changeValue -> @add 1, "M"

  tuneMon: (e)-> @tune e, "M", -1

  tuneYear: (e)-> @tune e, "Y", -1
  
  pickDate: (date)-> =>
    @changeValue -> @date date
  
  render: ->
    {onClickYear, onClickMonth} = @props

    @pageYears 1
  
  pickYear: (year)-> =>
    @modifyValue -> @year year
    @setState view: "days"
  
  render: ->
