refactoring GA-specific code into a UnitOfWork design pattern