new added impementation in hmp