Do we really need instances of this object with its extra level of indirection?  Can't we just make this a `createCommand` function that adds the `canExecute` property to a given function?  Also, shouldn't it automatically check canExecute before running the function?