changed how dynamic tags work. reverted to a resolver function