What's the point of replacing interface with implementation?