more feature changes: caching, keeping track of turns, etc.