Role based collectors

This looks huge but 99% of it is changing symbols to strings.