side project to abstract a rubik's cube for manipulation