hash functionality added