refactoring

still need to figure out better method than onAddedToVisibleDom callback
possibly an event