Trying to figure out the best way to introduce changes so that it is backwards compatible, but without making the code a nightmare to maintain, is always a fun part about software development.