Got rid of method dispatch_message by rearrange the derivation hierarchy.