// TODO: command interface and queue. // How to handle command resolving? Track how many subscriptions a command has?