Create startGame method.
Create win and gameOver indicator. Remove initial call of reinit().
Update unit test for removeTile.
Create updateCoordinate within tileModel. Create newTile, coordinatesInDirection, nextAvailableCellInDirection, isCellAvailable.
Create merged indicator within TileModel and reset method.
Create unit test for prepareTiles method within GridManager.
Create prepareTiles method within GridManager. Pass test.
Create unit test for moveTile method.
Change tileMatchesAvailable to isTileMatchesAvailable. Create isAnyCellAvailable.
Update unit tests to match the change of method names. Pass test.
Reorder loading order of scripts in index.html.
Inject KeyboardManager into GameController.
Delete duplicate keyEventHandlers initialize statement.
Update unit test to match the change within KeyBoard Manager.
Initialize KeyBoardManager after loading the page.
Create areSameCoordinates method.
Refactor GridManager. Remove duplicate isWithinGrid checking.
Update tiles layout.
Add id for each tile to be used in directive.
Refactor grid directive.