add perf.test, fix union
update spec
Update Hash