 	setVariablePattern = /[\w0-9\-]+:\s*[\(\[].*[\)\]]/
 	variablePattern = /[\(\[].*[\)\]]/
 	variableNamePattern = /[\w0-9\-]+/
-	customVars = {}
 	
-	constructor: (@lines = [], @stringNames = stringNameDefaults, @lineBreak = 80) ->
+	constructor: (@customVars = {}, @lines = [], @stringNames = stringNameDefaults, @lineBreak = 80) ->
 		# @lines contains an array of parsed lines, ready to be output
 		this
 

			varTab = this.parseRiff(part)
		else
			throw "cannot set invalid variable: " + part
		customVars[varName] = varTab # save variable info for later


	# parses marktab variables into tabMap
	parseVariable: (variableName) ->
		customVars[variableName]

	parseMultiplier: (input) ->
		result = {}

	# example: parseRiff("[1:1 2 h 3 r 7 p 5]") => { 1:[1, 2, 'h', 3, 'r', 7, 'p', 5] }
	parseRiff: (riff) ->
		riffLine = riff.substr(1, riff.length-2)# remove brackets
		m = new Marktab(@customVars)
		m.parse(riffLine)
		
	# sets marktab variables
