[DO NOT MERGE] Initial commit of refactor. Still contains old code.

Probably not necessary anymore, you can just call host_instance.roles