Almost finished implementation (TODO: Add AutoMapper, Finish end game logic)