fixed no closed channel bug. lexer run func launches a goroutine. other tweaks. Seems to be working