Was there a design decision that made you choose to go with a hash for `@books`, rather than just an array of `Book` objects? It seems like the latter would result in a simpler design, but I wasn't sure if there was another factor that went into that decision.