-rewriting (not done)