An algorithm that solves the rubiks cube