Refactored HtmlElement abstract class to interface