Type annotations everywhere, using shadowRoot, no scoped attribute, fixed Contact constructors