puzzle parsing