refactor front end, rename functionImpl to FunctiomImpl
implement symbol detection