 el = @elvis
 
 
-virtual = -> ->
-  throw new Exception('Must be implemented in sub class')
+virtual = (fname) -> ->
+  throw new Exception("#{fname} must be implemented in sub class")
 
 
 ###

    @subscribe(attr) for attr in @attrs
    @update()

  setValue: virtual()

  subscribe: virtual()

  update: ->
    attr = @_getValue()

      @setAttr(@_element, 'text')
    @_element

  getValue: virtual('getValue')

  _getValue: ->
    values = (@getValue(attr) for attr in @attrs)
