based on @mattscully's feedback, created separate types for async commands and queries, and renamed async methods, in order to provide a smoother migration experience from sync to async