add hmac client logic
update from merge