internal virtual void OnBoardMove(Location i_Source, Location i_Dest) { if (BoardMove != null) { BoardMove.Invoke(i_Source, i_Dest); } }