add role logic