add separate chaining algorithm