support hash has message
must clone hash