change the tlang's grammar greatly:)