Add open method, allow existing element to be used, and more settings.