     symbols =
       for row, i in symbols
         for symbol, j in row
-          if symbol?.use?
+          if symbol.usesContext
             symbol = symbol.use new Context symbols, i, j
-          symbolsByKey[symbol?.key] = symbol
+          else
+            symbol = symbol.use()
+          symbolsByKey[symbol.key] = symbol
     ## Include all used symbols in SVG
     for key, symbol of symbolsByKey
       continue unless symbol?

    else
      @versions[string] =
        Symbol.parse "#{@key}-v#{@nversions++}", result, @dirname

## Symbol to fall back to when encountering an unrecognized symbol.
## Path from https://commons.wikimedia.org/wiki/File:Replacement_character.svg

    ###
    encodeURIComponent @key
    .replace /%/g, '$'
  use: -> @  ## do nothing for static symbol
  usesContext: false

class DynamicSymbol extends Symbol
  constructor: (@key, @func, @dirname) ->
