1. A method including: receiving a number of widgets, wherein the number of widgets is associated with a number of reversible templates; generating descriptor language representative of at least one of the number of widgets using at least one of the number of reversible templates, wherein the descriptor language is independent of attributes of the number of widgets; updating the descriptor language based on edits to create updated description language; matching, at least partially, modified parts of the updated descriptor language to at least part of the number of reversible templates and matching any unmatched parts of the updated mark-up with at least one wildcard template, the wildcard template comprising a generic template that matches any tags and data; selecting a set of matched reversible templates and matched wildcard templates based upon a best match; and generating updated widgets based on the selected best matched set of reversible templates and matched wildcard templates.