As a developer, one of my greatest tools is the ability to refactor away and redesign an API after it was initially written. Making it more fundamentally easier to understand and use. But there is also another side of the coin that we don't touch upon quite often. Making it more flexible.