hash functional
merge resolved