 
     values: ->
       key for own key of @data
+
+  class Stack
+    constructor: ->
+      @data = []
+
+    push: (v) ->
+      @data.push v
+      this
+
+    pop: ->
+      @data = @data[0..-2]
+      this
+
+    top: ->
+      @data[-1..][0]  
 
   # some functional programming stuff - never used
 

  programString:    toProgramString
  subclass:         objectThatDelegatesTo
  StringBuffer:     StringBuffer


    @writeStream: (string) -> 
      new StringBuffer(string)

  # delegation - switched for subclassing
  objectThatDelegatesTo = (x, props) ->
