remove redundant backtrack
ditch IDCLS
come back to identifier
clean up