     @updateCurrentExpressionWithCommand cmd
 
   exponentClick: ->
+    if @exponentLastPressed
+      return
+    @exponentLastPressed = true
     @updateCurrentExpressionWithCommand @math.commands.build_exponentiate_last()
 
   negativeClick: ->
+    @exponentLastPressed = false
     @updateCurrentExpressionWithCommand @math.commands.build_negate_last()
 
   additionClick: ->
+    @exponentLastPressed = false
     @updateCurrentExpressionWithCommand @math.commands.build_append_addition()
 
   multiplicationClick: ->
     @updateCurrentExpressionWithCommand @math.commands.build_append_multiplication()
 
   divisionClick: ->
+    @exponentLastPressed = false
     @updateCurrentExpressionWithCommand @math.commands.build_append_division()
 
   subtractionClick: ->
+    @exponentLastPressed = false
     @updateCurrentExpressionWithCommand @math.commands.build_append_subtraction()
 
   decimalClick: ->
+    @exponentLastPressed = false
     if @reset_on_next_number
       @reset_on_next_number = false
       @updateCurrentExpressionWithCommand @math.commands.build_reset()

    @view = CalculatorView.build(@, @element, @math, @buttonsToRender)
    @expression_position = historic_value.build()
    @updateCurrentExpressionWithCommand @math.commands.build_reset()

  displayValue: ->
    exp_pos = @expression_position.current()


  # specification actions
  numberClick: (button_options)->
    @exponentLastPressed = false
    if @reset_on_next_number
      @reset_on_next_number = false
      @updateCurrentExpressionWithCommand @math.commands.build_reset()
