This document discusses improving the process of analyzing code differences during legacy code migration projects. It proposes using control flow graphs to provide a higher-level view of where code has changed. It also proposes constructing finite state automata from migration logs to represent the migration process and help explain why code changes were made. Initial results using log differencing show promise in succinctly expressing changes between versions. The overall goal is to help migration companies like Raincode more efficiently explain code changes to clients.