Added dynamicity. requires Ragel