works with command implementors and no more multiple commands