Starting to factor it out to roles