separate command handler from command bus