Refactoring.  Adding better abstractions with BoardTile