 			result = result.concat section._pieces
 		result
 
-	# draw track with painter
-	draw: (painter) ->
-		@_sections.forEach (section) ->
-			section.draw painter
-		if painter.showCodes
-			@connections().forEach (code) =>
-				painter.drawCode @_transform(code).compound(@_gapTransform), code
-		if painter.showCursor then painter.drawCursor @._transform(@cursor())
-
-	# Add piece to track.  Use cursor or track start transform
+	# Add piece to track.
+	# Use start transform to specify position/orientation of piece.
+	# If no start provided, the cursor connection will be used.
+	# If no pieces in track, the default transform is used.
 	# TODO: check piece connections for collisions and bail if there are any
 	add: (piece, where) ->
 		if where?

	draw: ->
		@_clear()
		@track._sections.forEach (section) =>
			section.draw @
		if @showCodes
			@track.connections().forEach (code) =>
				@drawCode @track._transform(code).compound(@track._gapTransform), code

				start = start.compound(@_pieces[pieceIndex].exitTransform()).compound(@track._gapTransform)
			start.compound(@_pieces[n].connections[connection].transform())

# Abstract class for defining a painter see:
# - woodentrack.raphael.coffee
# - woodentrack.d3.coffee
