Extract OneByOne behavior from Agent

it can be also later used for Actors