allow async tool instead of synchronous