deal with all the ways we can end up with elements from the moderately horrific orifice that is the native dom api