not finished, shuffle need fix