with hash algorithm