diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..a026149463017a0e3f91fccade8d576a790e2208
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+/ov8/trash 
+/ov8/test_files/enwik8 
+/ov8/test_files/opg8-2021.pdf
+
diff --git a/ov8/comp.py b/ov8/LZ_compression.py
similarity index 94%
rename from ov8/comp.py
rename to ov8/LZ_compression.py
index fd58e41396290e01c046f34efee0f3342f4d44d8..ee54895d932c0e3e139ef76fd10963304c0f89d7 100644
--- a/ov8/comp.py
+++ b/ov8/LZ_compression.py
@@ -1,6 +1,6 @@
 import string 
 
-with open('./fil.txt') as file:
+with open('./test_files/fil.txt') as file:
     tekst = file.read()
 
 
@@ -73,10 +73,10 @@ def run_comp():
 #run func and print result
 a = run_comp()
 
-with open('./compresed', 'w') as file:
+with open('./compressed_text', 'w') as file:
     file.write('')
 
-print(a)
+#print(a)
 i = 0
 '''a = a.replace('å', 'a')
 a = a.replace('ø', 'o')
@@ -131,10 +131,10 @@ while True:
             if a[i+len_of_int] == ']':
                 break
             len_of_int +=1
-        with open('./compresed', 'ab') as file:
+        with open('./compressed_text', 'ab') as file:
             int1 = int(a[i:i+len_of_int])
             file.write(int1.to_bytes(2,'little'))
-        with open('./compresed', 'a') as file:
+        with open('./compressed_text', 'a') as file:
             #print(a[i + len_of_int+1:i + len_of_int+1+int1])
             for j in a[i + len_of_int+1:i + len_of_int+1+int1]:
                 if j not in string.printable and j not in extended_string:
@@ -163,7 +163,7 @@ while True:
                 break
             len_of_backtrack +=1
         len_of_backtrack_value = int(a[i:len_of_backtrack])
-        with open('./compresed', 'ab') as file:
+        with open('./compressed_text', 'ab') as file:
             file.write(backtrack_value.to_bytes(2,'little'))
             file.write(len_of_backtrack_value.to_bytes(2,'little'))
         togle_append_clear_text = True
@@ -175,7 +175,7 @@ while True:
 
 
 
-with open('./compresed', 'rb') as file:
-    print(file.read())
+#with open('./compressed_text', 'rb') as file:
+#    print(file.read())
             
  
\ No newline at end of file
diff --git a/ov8/dcomp.py b/ov8/LZ_uncompression.py
similarity index 89%
rename from ov8/dcomp.py
rename to ov8/LZ_uncompression.py
index e63141fd064ab2a3567466757e4660002b97e248..a5c4204ab8e9b0fbd3a4442c35dbca639698b030 100644
--- a/ov8/dcomp.py
+++ b/ov8/LZ_uncompression.py
@@ -1,6 +1,6 @@
 
 
-with open('./compresed', 'rb') as file:
+with open('./compressed_text', 'rb') as file:
     tekst = file.read()
 
 
@@ -34,7 +34,8 @@ def dcomp():
 string = dcomp()
 
 
-with open('./uncomp', 'w') as file:
+with open('./uncompressed_text', 'w') as file:
     file.write(string)
 
 
+
diff --git a/ov8/compresed b/ov8/compressed_text
similarity index 100%
rename from ov8/compresed
rename to ov8/compressed_text
diff --git a/ov8/halla.py b/ov8/halla.py
deleted file mode 100644
index 0eb60e1589ae057b2fd9d99ddafedb5823b542b3..0000000000000000000000000000000000000000
--- a/ov8/halla.py
+++ /dev/null
@@ -1,15 +0,0 @@
-import PyPDF2
-
-pdfFileObj = open('opg8-2021.pdf', 'rb')
-pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
-
-pages = pdfReader.numPages
-
-tekst = ''
-for i in range(pages):
-    page = pdfReader.getPage(i)
-    tekst += page.extractText()
-
-print(tekst)
-
-
diff --git a/ov8/huffman.py b/ov8/huffman.py
new file mode 100644
index 0000000000000000000000000000000000000000..cb5af2cf5598ef885d4663c8ec6e20bfe9626a49
--- /dev/null
+++ b/ov8/huffman.py
@@ -0,0 +1,79 @@
+# A Huffman Tree Node
+class node:
+	def __init__(self, freq, symbol, left=None, right=None):
+		# frequency of symbol
+		self.freq = freq
+
+		# symbol name (character)
+		self.symbol = symbol
+
+		# node left of current node
+		self.left = left
+
+		# node right of current node
+		self.right = right
+
+		# tree direction (0/1)
+		self.huff = ''
+
+# utility function to print huffman
+# codes for all symbols in the newly
+# created Huffman tree
+
+
+def printNodes(node, val=''):
+	# huffman code for current node
+	newVal = val + str(node.huff)
+
+	# if node is not an edge node
+	# then traverse inside it
+	if(node.left):
+		printNodes(node.left, newVal)
+	if(node.right):
+		printNodes(node.right, newVal)
+
+		# if node is edge node then
+		# display its huffman code
+	if(not node.left and not node.right):
+		print(f"{node.symbol} -> {newVal}")
+
+
+# characters for huffman tree
+chars = ['a', 'b', 'c', 'd', 'e', 'f']
+
+# frequency of characters
+freq = [ 5, 9, 12, 13, 16, 45]
+
+# list containing unused nodes
+nodes = []
+
+# converting characters and frequencies
+# into huffman tree nodes
+for x in range(len(chars)):
+	nodes.append(node(freq[x], chars[x]))
+
+while len(nodes) > 1:
+	# sort all the nodes in ascending order
+	# based on theri frequency
+	nodes = sorted(nodes, key=lambda x: x.freq)
+
+	# pick 2 smallest nodes
+	left = nodes[0]
+	right = nodes[1]
+
+	# assign directional value to these nodes
+	left.huff = 0
+	right.huff = 1
+
+	# combine the 2 smallest nodes to create
+	# new node as their parent
+	newNode = node(left.freq+right.freq, left.symbol+right.symbol, left, right)
+
+	# remove the 2 nodes and add their
+	# parent as new node among others
+	nodes.remove(left)
+	nodes.remove(right)
+	nodes.append(newNode)
+
+# Huffman Tree is ready!
+printNodes(nodes[0])
diff --git a/ov8/opg8-2021.pdf b/ov8/opg8-2021.pdf
deleted file mode 100644
index fa0e2da9c14297138e364845abdc7178b28555e1..0000000000000000000000000000000000000000
Binary files a/ov8/opg8-2021.pdf and /dev/null differ
diff --git a/ov8/fil.txt b/ov8/test_files/fil.txt
similarity index 100%
rename from ov8/fil.txt
rename to ov8/test_files/fil.txt
diff --git a/ov8/trash/test.py b/ov8/trash/test.py
index adcf2b90eb28a3bbf0c360c284fd8a833c24703a..e769aee21f5bafaa052e781fd5eaae4f8994a025 100644
--- a/ov8/trash/test.py
+++ b/ov8/trash/test.py
@@ -92,12 +92,12 @@ for i in tekst:
     str += i[1]
     
 print(str)'''
-extended_string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
+'''extended_string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
 print(string.printable)
 print(extended_string)
 
-
-a = "ø"
+'''
+'''a = "ø"
 
 for i in a:
     if i in string.printable:
@@ -105,4 +105,9 @@ for i in a:
     elif i in extended_string:
         print("not ascii")
     else:
-        print("nor")
\ No newline at end of file
+        print("nor")'''
+
+
+with open('../opg8-2021.pdf') as file:
+    print(file.read())
+
diff --git a/ov8/uncomp b/ov8/uncompressed_text
similarity index 100%
rename from ov8/uncomp
rename to ov8/uncompressed_text