allow this to work with dynamic content