Properly abstractify the role/resource management