Full commit -- diagonals now in it's own class with all relevant operations