basic agent functionality finished