text: # This class is a simple hash table
  # that uses chaining
  class SimpleHashTable:
      def __init__(self, starting_capacity):
          self._table = []
          for i in range(starting_capacity):
              self._table.append([])
  
      # the hashtable insert function takes 
      # O(1) time
      def insert(self, id, item):
          bucket_id = id % len(self._table)
          self._table[bucket_id].append((id, item))
  
      # The get function runs in O(1) time
      # (amortized given a good hashing function)
      def get(self, id):
          bucket_id = id % len(self._table)
          for item in self._table[bucket_id]:
              if item[0] == id:
                  return item[1]
          return None
  
      # remove function runs in same time 
      # as the get function
      def remove(self, id):
          bucket_id = id % len(self._table)
          for item in self._table[bucket_id]:
              if item[0] == id:
                  self._table[bucket_id].remove(item)
  