regist giver implementation