Read again post of John Sundell Replacing legacy code using Swift protocols. I like this approach to refactoring legacy code. Unfortunately it will be hard to change architecture of app (framework) with this approach.