rewriting an old codebase in Rust