Implementation is now based on command handlers