letting clients pass in an element itself rather than relying on an id