private boolean matchesStepOneTopCross() {
		RubiksCube rc = this.initialRcConfig;
		
		// Get top face center cubie
		Cubie topFaceCenterCubie = rc.getCubie(2, 3, 2);
		
		// Get upperRight corner Cubie of front face
		Cubie frontFaceUpperRightCubie = rc.getCubie(3, 3, 3);
		
		// We are just after priming the cube so the top facelet already matches to the facelet of the center cubie of the top face
		// But we check whatever !
		if (! topFaceCenterCubie.getTopFace().equals(frontFaceUpperRightCubie.getTopFace()))
			return false;
		
		// Now we check the upperRight cubie of the right face
		Cubie rightFaceUpperRightCubie = rc.getCubie(3, 3, 1);
		if (! rightFaceUpperRightCubie.getTopFace().equals(frontFaceUpperRightCubie.getTopFace())
		 || ! rightFaceUpperRightCubie.getRightFace().equals(frontFaceUpperRightCubie.getRightFace()))
			return false;
		
		// Now we check the upperRight cubie of the back face
		Cubie backFaceUpperRightCubie = rc.getCubie(1, 3, 1);
		if (! backFaceUpperRightCubie.getTopFace().equals(frontFaceUpperRightCubie.getTopFace())
		 || ! backFaceUpperRightCubie.getBackFace().equals(rightFaceUpperRightCubie.getBackFace()))
			return false;
		
		// Now we check the upperRight cubie of the bottom face
		Cubie leftFaceUpperRightCubie = rc.getCubie(1, 3, 3);
		if (! leftFaceUpperRightCubie.getTopFace().equals(frontFaceUpperRightCubie.getTopFace())
		 || ! leftFaceUpperRightCubie.getLeftFace().equals(backFaceUpperRightCubie.getLeftFace()))
			return false;
		
		// Finally we check that front facelet of the upperRight cubie of the left face matches the front facelet of the upperRight cubie of the front face
		if (! leftFaceUpperRightCubie.getFrontFace().equals(frontFaceUpperRightCubie.getFrontFace()))
		 	return false;
		
		return true;
	}