refactor aget and aset into one function
rename HashFunction to HashAccessFunction