rewrite command bus with better command execute method