private Block?GetAnIncorrectFrontEdge() { var blocks = _cube.GetFrontEdges().Where(b => b.HasColour(Colour.White)); foreach (var block in blocks) { var nonFrontSide = GetSideToRotate(block, Side.Front); if (block.Front != Colour.White || !RubixCubeStatusEvaluator.SideIsCorrectColour(nonFrontSide, block)) { return(block); } } return(null); }