replacing / migrating existing code to use a single implementation. Currently we have two implementations with a bunch of code duplication.