fixed up puzzle method