{"id":819,"date":"2026-08-12T05:04:58","date_gmt":"2026-08-12T05:04:58","guid":{"rendered":"https:\/\/struct.ai\/articles\/aiops-benefits-engineering-productivity\/"},"modified":"2026-08-12T05:04:58","modified_gmt":"2026-08-12T05:04:58","slug":"aiops-benefits-engineering-productivity","status":"publish","type":"post","link":"https:\/\/struct.ai\/articles\/aiops-benefits-engineering-productivity\/","title":{"rendered":"AIOps Benefits for Engineering Productivity"},"content":{"rendered":"<p><em>Written by: Nimesh Chakravarthi, Co-founder &amp; CTO, Struct<\/em><\/p>\n<h2>Key Takeaways<\/h2>\n<ul>\n<li>\n<p>AIOps removes the 60\u201380% of incident time that teams usually spend on manual investigation by automating alert correlation, root cause analysis, and incident resolution verification.<\/p>\n<\/li>\n<li>\n<p>Fragmented on-call workflows force engineers to jump between 8\u201312 tools per incident, which adds heavy cognitive load across hundreds of decisions and accelerates burnout.<\/p>\n<\/li>\n<li>\n<p>Struct customers report an 80% reduction in triage time, compressing investigations from 30\u201345 minutes to 2\u20135 minutes and reclaiming 56+ engineer-hours per month for product work.<\/p>\n<\/li>\n<li>\n<p>Incident resolution verification closes the loop by confirming recovery against live observability data, which prevents premature closures and repeat pages.<\/p>\n<\/li>\n<li>\n<p><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https:\/\/cal.com\/deepanm\/struct-demo\">Struct automates your on-call runbook<\/a> so your team can reclaim engineering productivity and reduce MTTR, with setup completed in under 10 minutes.<\/p>\n<\/li>\n<\/ul>\n<h2>How fragmented on-call triage drains engineering time<\/h2>\n<p>Fragmented on-call triage forces engineers to context-switch across 8\u201312 tools per incident, including Datadog, PagerDuty, GitHub, Sentry, and cloud log consoles, before they can form a hypothesis about what broke. <a target=\"_blank\" rel=\"noindex nofollow\" href=\"https:\/\/squareops.com\/blog\/ai-powered-incident-response-reduce-mttr-sre\">Each tool switch adds cognitive overhead<\/a> that compounds across hundreds of decisions per investigation, and this investigation overhead, the 60\u201380% of MTTR consumed by manual work, compounds across every incident in traditional SRE workflows.<\/p>\n<p>The on-call reality for a 40-engineer fintech team often looks like this. A Sentry alert fires at 3 AM, the on-call engineer acknowledges it in PagerDuty, opens Datadog to check service health, pivots to AWS CloudWatch for raw logs, cross-references a recent GitHub commit, and then opens a Slack thread to ask a senior engineer for context. <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https:\/\/struct.ai\/case-study\/arcana\">Arcana&#8217;s team spent 15+ hours per week manually triaging hundreds of high-priority Sentry alerts, with individual investigations averaging 10\u201345 minutes each<\/a> before they automated the process. The <a target=\"_blank\" rel=\"noindex nofollow\" href=\"https:\/\/devops.com\/the-end-of-alert-fatigue-how-ai-powered-observability-is-transforming-sre-teams-in-2026\">Catchpoint SRE Report 2025 found that nearly 70% of SREs say on-call stress has impacted burnout and attrition<\/a>, with median time spent on operations rising to 30% of total working hours. For a senior engineer, that time goes into log-hunting instead of shipping product.<\/p>\n<p>Tribal knowledge concentration compounds the problem. Senior engineers hold the systemic context required to debug complex distributed failures, so every 3 AM page pulls them away from feature work. Newer engineers cannot safely take on-call shifts without that context. <a target=\"_blank\" rel=\"noindex nofollow\" href=\"https:\/\/playerzero.ai\/resources\/automated-root-cause-analysis-engineering-support-triage\">A conservative estimate for mid-sized engineering teams is that 30% of sprint capacity is consumed by unplanned support triage<\/a>, which represents roughly $2.7M annually in overhead for a 50-engineer team at $180K fully loaded cost.<\/p>\n<h2>How AIOps turns on-call into a high-leverage workflow<\/h2>\n<p>AIOps removes the manual first-pass investigation by correlating logs, traces, metrics, and code context automatically as soon as an alert fires. For engineering teams already using tools like Sentry, Datadog, and GitHub, the productivity gains arrive quickly and can be measured.<\/p>\n<p>Struct customers working at large scale with many services <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https:\/\/www.producthunt.com\/products\/struct-2\">report an 80% reduction in triage time<\/a>. The mechanism stays simple. Instead of a 30\u201345 minute manual investigation, Struct completes context-gathering, log correlation, and root cause identification in under 5 minutes, before the engineer opens their laptop. <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https:\/\/struct.ai\/case-study\/arcana\">Arcana reduced average developer time per investigation from 30 minutes to 2 minutes and reclaimed 56 hours of developer time per month<\/a>. At that team scale, <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https:\/\/struct.ai\/case-study\/arcana\">Arcana runs 2,100+ automated investigations monthly with an 85%\u201390%+ helpful investigation rate<\/a>, investigations that previously required a human engineer to initiate and complete manually.<\/p>\n<p>The downstream effect on feature velocity is direct. <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https:\/\/struct.ai\/blog\/struct-vs-datadog\">Arcana reduced senior engineer hours on investigation from approximately 60 to approximately 4 per month<\/a> after adding Struct on top of Datadog. The 56 hours mentioned earlier now shift into product development. Industry-wide, <a target=\"_blank\" rel=\"noindex nofollow\" href=\"https:\/\/aws.amazon.com\/blogs\/devops\/leverage-agentic-ai-for-autonomous-incident-response-with-aws-devops-agent\">customers using AWS DevOps Agent in preview report up to 80% faster investigations and up to 75% lower MTTR<\/a>, and AIOps-enabled teams handle more incidents per staff member than traditional operations teams while improving resolution times.<\/p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https:\/\/cal.com\/deepanm\/struct-demo\"><strong>See how to reclaim 56+ hours per month<\/strong> \u2014 Stop burning your best engineers on 3 AM log-hunting expeditions. Reduce triage time by 80% and give your team their product velocity back. Set up Struct in under 10 minutes.<\/a><\/p>\n<h2>On-call workflow comparison: without AIOps vs with Struct<\/h2>\n<table style=\"min-width: 100px\">\n<colgroup>\n<col style=\"min-width: 25px\">\n<col style=\"min-width: 25px\">\n<col style=\"min-width: 25px\">\n<col style=\"min-width: 25px\"><\/colgroup>\n<tbody>\n<tr>\n<th colspan=\"1\" rowspan=\"1\">\n<p>Workflow Step<\/p>\n<\/th>\n<th colspan=\"1\" rowspan=\"1\">\n<p>Without AIOps<\/p>\n<\/th>\n<th colspan=\"1\" rowspan=\"1\">\n<p>With AIOps (Struct)<\/p>\n<\/th>\n<th colspan=\"1\" rowspan=\"1\">\n<p>Time Saved<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td colspan=\"1\" rowspan=\"1\">\n<p>Alert acknowledgment &amp; initial context<\/p>\n<\/td>\n<td colspan=\"1\" rowspan=\"1\">\n<p>Manual: engineer wakes, opens PagerDuty, reads raw alert, 5\u201310 min<\/p>\n<\/td>\n<td colspan=\"1\" rowspan=\"1\">\n<p>Automated: Struct posts blast radius and impact summary to Slack before engineer opens laptop, ~0 min engineer time<\/p>\n<\/td>\n<td colspan=\"1\" rowspan=\"1\">\n<p>5\u201310 min<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"1\" rowspan=\"1\">\n<p>Log correlation &amp; root cause identification<\/p>\n<\/td>\n<td colspan=\"1\" rowspan=\"1\">\n<p><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https:\/\/struct.ai\/case-study\/arcana\">Manual log hunting across Sentry, CloudWatch, Datadog, 10\u201345 min per investigation<\/a><\/p>\n<\/td>\n<td colspan=\"1\" rowspan=\"1\">\n<p><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https:\/\/struct.ai\/case-study\/arcana\">Struct auto-correlates logs, traces, and code, 2 min median (Arcana)<\/a><\/p>\n<\/td>\n<td colspan=\"1\" rowspan=\"1\">\n<p>Up to 43 min<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"1\" rowspan=\"1\">\n<p>Tool context switching<\/p>\n<\/td>\n<td colspan=\"1\" rowspan=\"1\">\n<p>8\u201312 tool switches per incident that add cognitive overhead<\/p>\n<\/td>\n<td colspan=\"1\" rowspan=\"1\">\n<p>Single Slack-native dashboard with unified timeline from all connected sources<\/p>\n<\/td>\n<td colspan=\"1\" rowspan=\"1\">\n<p>2\u20136 min<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"1\" rowspan=\"1\">\n<p>Senior engineer escalation<\/p>\n<\/td>\n<td colspan=\"1\" rowspan=\"1\">\n<p>Required for tribal knowledge on complex failures, which blocks feature work<\/p>\n<\/td>\n<td colspan=\"1\" rowspan=\"1\">\n<p>Struct encodes runbooks, and junior engineers get a contextualized starting point for every alert<\/p>\n<\/td>\n<td colspan=\"1\" rowspan=\"1\">\n<p>Escalation eliminated for first-pass triage<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"1\" rowspan=\"1\">\n<p>Incident resolution verification<\/p>\n<\/td>\n<td colspan=\"1\" rowspan=\"1\">\n<p>Manual: engineer re-checks dashboards after fix, no automated confirmation<\/p>\n<\/td>\n<td colspan=\"1\" rowspan=\"1\">\n<p>Struct Incident Tracker runs a ~1-minute automated verification loop against observability data<\/p>\n<\/td>\n<td colspan=\"1\" rowspan=\"1\">\n<p>5\u201315 min per incident<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"1\" rowspan=\"1\">\n<p>Total investigation time (typical)<\/p>\n<\/td>\n<td colspan=\"1\" rowspan=\"1\">\n<p><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https:\/\/struct.ai\/case-study\/arcana\">30\u201345 min (Arcana pre-Struct baseline)<\/a><\/p>\n<\/td>\n<td colspan=\"1\" rowspan=\"1\">\n<p><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https:\/\/struct.ai\/case-study\/arcana\">2\u20135 min (Arcana post-Struct)<\/a><\/p>\n<\/td>\n<td colspan=\"1\" rowspan=\"1\">\n<p><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https:\/\/www.producthunt.com\/products\/struct-2\">80% reduction<\/a><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>How incident resolution verification stops repeat pages<\/h2>\n<p>Incident resolution verification confirms that an incident is actually resolved by checking live observability data instead of relying on an engineer&#8217;s manual judgment after a stressful 3 AM fix. Without this step, teams close incidents early, the same alert re-fires 20 minutes later, and the on-call engineer gets paged again.<\/p>\n<p>Struct&#8217;s Incident Tracker runs incident resolution verification as a ~1-minute automated loop that continuously checks connected observability data, including Datadog metrics, Sentry error rates, GCP logs, and other integrated sources, against the pre-incident baseline. The incident status updates automatically when the data confirms recovery. No engineer needs to manually re-check multiple dashboards to decide whether it is safe to close the ticket.<\/p>\n<p>This capability closes the loop that most AIOps tools leave open. Datadog Bits AI, Sentry Seer, and PagerDuty AIOps assist with detection and triage, but they do not provide a dedicated, automated verification step that confirms resolution against real telemetry. <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https:\/\/struct.ai\/case-study\/arcana\">Arcana&#8217;s team moved from investigating every Sentry alert manually to a model where Struct investigates every alert automatically, with no exceptions, which makes the full investigation-to-resolution loop sustainable at scale<\/a>. Incident resolution verification becomes the final step that turns reactive firefighting into a closed, auditable process.<\/p>\n<h2>How to track AIOps productivity gains in your team<\/h2>\n<p>Four metrics capture the full productivity impact of AIOps on on-call engineering workflows. Track these before and after deployment over at least 90 days to produce defensible comparisons.<\/p>\n<ul>\n<li>\n<p><strong>MTTD (Mean Time to Detect):<\/strong> AIOps platforms can identify potential incidents before traditional threshold-based alerts would trigger. Measure the difference between alert fire time and first human acknowledgment.<\/p>\n<\/li>\n<li>\n<p><strong>MTTR (Mean Time to Resolve):<\/strong> The <a target=\"_blank\" rel=\"noindex nofollow\" href=\"https:\/\/metoro.io\/blog\/how-to-reduce-mttr-with-ai\">DORA 2024 Report identifies elite-performing teams as those achieving failed-deployment recovery times of under 1 hour<\/a>. Struct focuses on the diagnosis phase specifically, and the 30-to-2-minute compression seen at Arcana directly shortens MTTR.<\/p>\n<\/li>\n<li>\n<p><strong>Focus time (senior engineer hours on triage):<\/strong> Track senior IC hours spent on investigation per month. <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https:\/\/struct.ai\/blog\/struct-vs-datadog\">Arcana reduced this from approximately 60 hours to approximately 4 hours per month<\/a>. This metric directly quantifies the velocity returned to product work.<\/p>\n<\/li>\n<li>\n<p><strong>Onboarding speed to on-call readiness:<\/strong> Measure how many weeks a new engineer needs before taking independent on-call shifts. Struct encodes runbooks and provides a contextualized starting point for every alert, which reduces dependence on senior engineer escalation and shortens onboarding time.<\/p>\n<\/li>\n<\/ul>\n<p><a target=\"_blank\" rel=\"noindex nofollow\" href=\"https:\/\/blog.opshero.ai\/articles\/agentic-aiops-in-2026-reduce-alert-noise-first\">Hours saved from AIOps can be estimated with the formula: (baseline triage time + resolution time) minus (post-implementation triage time + resolution time), multiplied by the fully loaded cost of on-call time<\/a>. For a 40-engineer team at $180K fully loaded cost, the 56 hours mentioned earlier represent approximately $60K in annual productivity returned to feature development.<\/p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https:\/\/cal.com\/deepanm\/struct-demo\"><strong>Track your productivity gains<\/strong> \u2014 See exactly how Struct maps to your MTTR, focus time, and onboarding metrics. Set up in under 10 minutes and run your first automated investigation today.<\/a><\/p>\n<h2>How Struct compares on investigation depth and verification<\/h2>\n<p>Struct sits on top of existing observability tooling as a dedicated investigation and verification layer. It does not replace Datadog, Grafana, or Sentry. Instead, it queries them automatically as soon as an alert fires and delivers a correlated root cause analysis before a human begins manual triage.<\/p>\n<ul>\n<li>\n<p><strong>Datadog Bits AI:<\/strong> Provides AI-assisted investigation within the Datadog ecosystem. Engineers must be inside the Datadog UI to initiate and review. It does not provide cross-stack correlation across Sentry, GitHub, and GCP simultaneously, and it does not include automated incident resolution verification. <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https:\/\/struct.ai\/blog\/struct-vs-datadog\">Struct is recommended as a layer on top of Datadog, not a replacement<\/a>.<\/p>\n<\/li>\n<li>\n<p><strong>Sentry Seer:<\/strong> Performs root cause analysis scoped to Sentry&#8217;s own telemetry. <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https:\/\/struct.ai\/blog\/struct-vs-sentry-seer\">Arcana replaced Seer with Struct, matching the 30-to-2-minute compression and cutting senior engineer hours on investigation from approximately 60 to approximately 4 per month<\/a>. Seer does not correlate across infrastructure logs, metrics, or deployment history.<\/p>\n<\/li>\n<li>\n<p><strong>PagerDuty AIOps:<\/strong> Focuses on alert grouping, noise reduction, and escalation routing. It performs well at reducing page volume but does not handle deep cross-stack root cause analysis or automated resolution verification.<\/p>\n<\/li>\n<li>\n<p><strong>incident.io and Rootly:<\/strong> Incident management platforms that automate coordination workflows, status updates, and post-mortems. They operate after triage is complete. They do not automate the investigation itself or verify resolution against live observability data.<\/p>\n<\/li>\n<li>\n<p><strong>Struct:<\/strong> Automates the full investigation loop, from alert fire to root cause to incident resolution verification, in under 5 minutes, with a 10-minute setup, SOC 2 Type II and HIPAA compliance, and Slack-native delivery. It is purpose-built for Series A\u2013C SaaS teams with 15\u201380 engineers and encodes custom runbooks so the AI investigates the way your senior engineers would.<\/p>\n<\/li>\n<\/ul>\n<h2>Frequently Asked Questions<\/h2>\n<h3>Is Struct suitable for a team of 15\u201330 engineers, or is it built for larger organizations?<\/h3>\n<p>Struct is purpose-built for Series A\u2013C B2B SaaS companies with 15\u201380 engineers. The 10-minute setup, Slack-native interface, and composable runbook architecture serve lean engineering teams that cannot spare weeks for enterprise onboarding. Smaller teams benefit most from the automated first-pass investigation because they usually lack dedicated SRE headcount and rely on product engineers to cover on-call rotations. Struct gives those engineers a contextualized starting point for every alert without requiring deep systemic knowledge.<\/p>\n<h3>What telemetry quality does Struct require to produce accurate root cause analysis?<\/h3>\n<p>Struct relies on the observability data your team already emits. The ideal setup includes an alerting trigger source, such as Slack, PagerDuty, or Sentry, a code repository like GitHub, and at least one observability platform such as Datadog, AWS CloudWatch, GCP Logs, Grafana, or a similar tool. If your system lacks basic logging, trace IDs, or structured alerting, Struct cannot infer system state from code analysis alone. Teams already using Sentry for exceptions, a cloud logging platform for infrastructure, and Slack for alerts see the highest helpful investigation rates, and Arcana achieved an 85%\u201390%+ helpful investigation rate across 2,100+ monthly investigations with exactly this stack.<\/p>\n<h3>How does Struct handle compliance requirements for sensitive log data?<\/h3>\n<p>Struct is SOC 2 Type II and HIPAA compliant. Full compliance documentation is available at trust.struct.ai. Log data is accessed and processed ephemerally during investigations and is not stored persistently. For most Series A\u2013C SaaS companies, including fintech teams with strict SLA and data-handling requirements, this compliance posture meets standard expectations. Teams with enterprise policies that require full on-premise deployment or zero-egress log handling should evaluate Struct&#8217;s Enterprise tier, which includes sidecar and on-prem support options.<\/p>\n<h3>Should we build an internal AIOps investigation tool instead of adopting Struct?<\/h3>\n<p>Building an internal automated investigation tool requires integrating with every observability platform your team uses, maintaining prompt logic and context management for large log volumes, handling malformed cloud logs without dropping context, and keeping the system current as your stack evolves. The engineering cost of building and maintaining this usually spans months of senior engineer time, the same resource you are trying to protect. Struct delivers a production-ready investigation layer in 10 minutes, with an 80%+ helpful investigation rate validated across thousands of real incidents. The build-versus-buy calculus favors adoption for any team where on-call triage already consumes measurable sprint capacity.<\/p>\n<h3>What happens after Struct identifies a root cause?<\/h3>\n<p>Struct provides the root cause, supporting evidence, and suggested fixes in a dynamically generated dashboard accessible directly from the Slack alert thread. From there, engineers can ask follow-up questions through the Slack-native conversational interface, request additional log pulls, or test alternative hypotheses without leaving Slack. Once the root cause is confirmed, Struct can hand off context to a local CLI or AI coding agent, or generate a pull request directly. The Incident Tracker then runs automated incident resolution verification, a ~1-minute loop against live observability data, to confirm the fix is holding before the incident is closed.<\/p>\n<h2>Conclusion<\/h2>\n<p>The AIOps benefits for engineering productivity already show up in production teams. Struct customers report an <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https:\/\/www.producthunt.com\/products\/struct-2\">80% reduction in triage time<\/a>, investigations that compress from 30\u201345 minutes to 2\u20135 minutes, and <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https:\/\/struct.ai\/case-study\/arcana\">the 56+ hours teams reclaim each month<\/a> for product development. The mechanism forms a closed loop: automated first-pass investigation as soon as an alert fires, cross-stack root cause analysis delivered to Slack before an engineer opens their laptop, and incident resolution verification that confirms recovery against live observability data without manual re-checking.<\/p>\n<p>For Series A\u2013C B2B SaaS teams where senior engineers are the scarcest resource and product velocity drives competitive advantage, this shift becomes the difference between a team that ships and a team that firefights.<\/p>\n<p><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https:\/\/cal.com\/deepanm\/struct-demo\"><strong>Choose shipping over firefighting<\/strong> \u2014 Stop burning your best engineers on 3 AM log-hunting expeditions. Reduce triage time by 80% and give your team their product velocity back. Set up Struct in under 10 minutes and let AI handle your next on-call investigation. Start Free Today.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Discover how AIOps cuts triage time by 80% and reclaims 56+ engineer-hours\/month. Struct automates on-call workflows to reduce MTTR in minutes.<\/p>\n","protected":false},"author":118,"featured_media":818,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-819","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/struct.ai\/articles\/wp-json\/wp\/v2\/posts\/819","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/struct.ai\/articles\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/struct.ai\/articles\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/struct.ai\/articles\/wp-json\/wp\/v2\/comments?post=819"}],"version-history":[{"count":0,"href":"https:\/\/struct.ai\/articles\/wp-json\/wp\/v2\/posts\/819\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/struct.ai\/articles\/wp-json\/wp\/v2\/media\/818"}],"wp:attachment":[{"href":"https:\/\/struct.ai\/articles\/wp-json\/wp\/v2\/media?parent=819"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/struct.ai\/articles\/wp-json\/wp\/v2\/categories?post=819"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/struct.ai\/articles\/wp-json\/wp\/v2\/tags?post=819"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}