Up to know, location is the only metadata that can not be associated to different attribute. I think it is quite special and not sure if generalizing that to a function will help or make thinks less explicity...