added hash table implementation - using open addressing with quadratic probing