version rewriting