new functions in agent