support async command.Fixes #587