puzzle analysis