centralize & clean up Syntax object construction

I will merge if Travis likes it