Add better role handling