core: it compiles again, continue to improve expression features, start to design expression simplifier