agent has it own role