apart the handle fun from command protocol