 	format =
 		phs: (phs) ->
 			for key, val of phs
-				phs[key] = "#{needle.left}#{val}#{needle.right}"
+				phs[key] = "#{needle.placeholders.left}#{val}#{needle.placeholders.right}"
 			phs
 
 		closing: # last closing tag

		'ngCloakStyles'
		'clickjacking'
	}

	# helpers
	# =======

				return content if has.ph content, ph
				return content if has.attr attr, content
				for tag in tags
					method  = if tag is '*' then 'anyAttr' else 'indAttr'
					info    = get.content[method] ph, attr, content, tag
					continue unless info.oTag
					content = info.content
					break
				content

			indAttr: (ph, attr, content, tag) -> # specific tag
				info = { oTag: null, content }
				pat  = pats.opening.tag tag
				info.oTag = get.attr pat, ph, attr, content # o = opening tag
				return info unless info.oTag
				info.content = info.content.replace pat, info.oTag
				info

			anyAttr: (ph, attr, content, tag) -> # any tag
				info        = { oTag: null, content }
				comments    = []
				pat         = pats.opening.tag tag
				patCmtsHtml = pats.comments.html
				content     = content.replace patCmtsHtml, (cmt) -> comments.push cmt; needle.comments
				info.oTag   = get.attr pat, ph, attr, content # o = opening tag
				return info unless info.oTag
				patCmtsNeedle = pats.comments.needle
				info.content  = content.replace pat, info.oTag
				return info unless comments.length
				cmtCnt = -1
				info.content = info.content.replace patCmtsNeedle, -> cmtCnt++; comments[cmtCnt]
				info

		tag: (pat, ph, loc, content) ->
			match = pat.exec content
