When we use tools, currently only the result of the last invocation is returned but we should include the full details * messages: should get copied before getting extended, then all messages should get returned * returned data of each step