Moved element input outside of push() function to support demo mode and regular calls with template types