# Writing the `
```
the compiler:
1. Finds `class Progress` (or `class Progress extends SomeBase`) by regex against the tag name in both kebab
and PascalCase form.
2. Rewrites it to `MMO.define('mmo-progress', class MMO_Progress_JHS extends CustomShadowElement(HTMLElement) {
... }` where `CustomShadowElement` is whatever you wrote after `extends` (default:
`MMO.elements.CustomShadowElement`) and `HTMLElement` is whatever `is="..."` maps to (default: plain
`HTMLElement`).
3. Injects, as the **first** members of the class body: `static defaultAttributes()` (from the root tag's own
attributes) and `render($view) { ...compiled markup...; ...compiled