This chapter took a basic game element, a colored tile with a shape on it, and reused it in three different games. The basic Tile class required some refactoring along the way to support new functionality that wasn’t required of it in earlier games. As you’ve seen, the trick to refactoring a class is to avoid changes to the public interface of the class. If you can do this, then you can refactor without negatively impacting the rest of the project.