agent definition - incomplete