```python class HashTable: def __init__(self, size): self.size = size self.data = [None] * size def _hash(self, key): hash_value = 0 for i in range(len(key)): hash_value = (hash_value + ord(key[i]) * i) % self.size return hash_value def append(self, key, value): index = self._hash(key) if self.data[index] is None: self.data[index] = [] self.data[index].append((key, value)) def get(self, key): index = self._hash(key) if self.data[index] is None: return None for pair in self.data[index]: if pair[0] == key: return pair[1] return None def keys(self): keys_list = [] for i in range(self.size): if self.data[i] is not None: for pair in self.data[i]: keys_list.append(pair[0]) return keys_list ```