Make RubikCube and RubikCubeMovement generic and not visible outside of their package.
Separate the network package; rename RubikSize to RubikObject.
Separate the States (and also Dialogues) into their own package.