Custom element

Create CustomElement class for non-UI widgets, fixes #81