First pass

Creates/updates an element for us, provides a destroy method for cleanup.