diff --git a/A1/A1.pdf b/A1/A1.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..7d7502a5072c59b79981758cfa27f76f70b2d850
Binary files /dev/null and b/A1/A1.pdf differ
diff --git a/A2/images/astronauts/Eileen-Collins.jpg b/A2/images/astronauts/Eileen-Collins.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..29ce31cd0828954be05948d9513ab8ad140afa96
Binary files /dev/null and b/A2/images/astronauts/Eileen-Collins.jpg differ
diff --git a/foo.py b/foo.py
deleted file mode 100644
index d0fac8863c5accbc9275ebfc8f10a307528c4ea9..0000000000000000000000000000000000000000
--- a/foo.py
+++ /dev/null
@@ -1,80 +0,0 @@
-# Program to count islands in boolean 2D matrix
-import copy
-import string
-
-import numpy as np
-
-
-class Graph:
-
-    def __init__(self, row, col, g):
-        self.ROW = row
-        self.COL = col
-        self.graph = g
-        self.islands = [[None for _ in range(col)] for _ in range(row)]
-
-    def isSafe(self, i, j, visited, g):
-        return 0 <= i < self.ROW and 0 <= j < self.COL and not visited[i][j] and g[i][j]
-
-    def DFS(self, i, j, visited, g):
-        rowNbr = [-1, -1, -1, 0, 0, 1, 1, 1]
-        colNbr = [-1, 0, 1, -1, 1, -1, 0, 1]
-
-        visited[i][j] = True
-
-        for k in range(8):
-            if self.isSafe(i + rowNbr[k], j + colNbr[k], visited, g):
-                self.DFS(i + rowNbr[k], j + colNbr[k], visited, g)
-
-    def countIslands(self):
-        visited = [[False for _ in range(self.COL)] for _ in range(self.ROW)]
-        count = 0
-        for numb in [1, 2, 3]:
-            g = self.highlight(numb, self.graph, self.ROW, self.COL)
-            print(np.array(g))
-            for i in range(self.ROW):
-                for j in range(self.COL):
-                    if visited[i][j] is False and g[i][j] == 1:
-                        self.DFS(i, j, visited, g)
-
-                        for x in range(self.ROW):
-                            for y in range(self.COL):
-                                if self.islands[x][y] is None and visited[x][y] is True:
-                                    self.islands[x][y] = (list(string.ascii_lowercase)[count], numb)
-                        count += 1
-                        print(np.array(self.islands))
-        return count
-
-    def highlight(self, number, g, r, c):
-        adjacency_matrix = copy.deepcopy(g)
-        for i in range(r):
-            for j in range(c):
-                adjacency_matrix[i][j] = 1 if adjacency_matrix[i][j] == number else 0
-        return adjacency_matrix
-
-    def bins(self):
-        bins = {}
-        for x in range(self.ROW):
-            for y in range(self.COL):
-                if self.islands[x][y] not in bins:
-                    bins[self.islands[x][y]] = 1
-                else:
-                    bins[self.islands[x][y]] += 1
-        return bins
-
-
-if __name__ == '__main__':
-    graph = [[2, 1, 2, 2, 1, 1],
-             [2, 2, 1, 2, 1, 1],
-             [2, 1, 3, 2, 1, 1],
-             [2, 2, 2, 1, 1, 2],
-             [2, 2, 1, 1, 2, 2],
-             [2, 2, 1, 1, 2, 2]]
-
-    row = len(graph)
-    col = len(graph[0])
-
-    g = Graph(row, col, graph)
-    print("Number of islands is:")
-    g.countIslands()
-    print(g.bins())
diff --git a/test.py b/test.py
deleted file mode 100644
index cb1f36f097fd200b2e742fe590459f4302b3eb0b..0000000000000000000000000000000000000000
--- a/test.py
+++ /dev/null
@@ -1,162 +0,0 @@
-# Program to count islands in boolean 2D matrix
-import copy
-import string
-import sys
-import numpy as np
-from enum import Enum
-from skimage import io
-from matplotlib import pyplot as plt
-
-
-class KEYS(Enum):
-    LABEL = 'label'
-    COLOR = 'color'
-    COUNT = 'count'
-    ALPHA = 'alpha'
-    BETA = 'beta'
-    PIXELS = 'pixels'
-
-
-class Graph:
-
-    def __init__(self, row, col, g, bins, threshold):
-        self.ROW = row
-        self.COL = col
-        self.graph = g
-        self.connected_components = [[None for _ in range(col)] for _ in range(row)]
-        self.bins = bins
-        self.threshold = threshold
-
-    def isSafe(self, i, j, visited, g):
-        return 0 <= i < self.ROW and 0 <= j < self.COL and not visited[i][j] and g[i][j]
-
-    def DFS(self, i, j, visited, g):
-        rowNbr = [-1, -1, -1, 0, 0, 1, 1, 1]
-        colNbr = [-1, 0, 1, -1, 1, -1, 0, 1]
-
-        visited[i][j] = True
-
-        for k in range(8):
-            if self.isSafe(i + rowNbr[k], j + colNbr[k], visited, g):
-                self.DFS(i + rowNbr[k], j + colNbr[k], visited, g)
-
-    def label_connected_components(self, visited, label, count):
-        for x in range(self.ROW):
-            for y in range(self.COL):
-                if self.connected_components[x][y] is None and visited[x][y] is True:
-                    self.connected_components[x][y] = {
-                        KEYS.LABEL.name: count,  # list(string.ascii_lowercase)[count],
-                        KEYS.COLOR.name: label
-                    }
-
-    def detect_connected_components(self):
-        visited = [[False for _ in range(self.COL)] for _ in range(self.ROW)]
-        count = 0
-        for numb in range(1, self.bins + 1):
-            g = self.binary_matrix(numb, self.graph, self.ROW, self.COL)
-            for i in range(self.ROW):
-                for j in range(self.COL):
-                    if visited[i][j] is False and g[i][j] == 1:
-                        self.DFS(i, j, visited, g)
-                        self.label_connected_components(visited, numb, count)
-                        count += 1
-        print(np.array(visited))
-        return count
-
-    def binary_matrix(self, number, g, r, c):
-        adjacency_matrix = copy.deepcopy(g)
-        for i in range(r):
-            for j in range(c):
-                adjacency_matrix[i][j] = 1 if adjacency_matrix[i][j] == number else 0
-        return adjacency_matrix
-
-    def ccv(self):
-        results = {}
-        for x in range(self.ROW):
-            for y in range(self.COL):
-                label = self.connected_components[x][y][KEYS.LABEL.name]
-                color = self.connected_components[x][y][KEYS.COLOR.name]
-                if label not in results:
-                    results[label] = {
-                        KEYS.COUNT.name: 1,
-                        KEYS.COLOR.name: color,
-                        KEYS.PIXELS.name: [(x, y)]
-
-                    }
-                else:
-                    results[label][KEYS.COUNT.name] += 1
-                    results[label][KEYS.PIXELS.name] += [(x, y)]
-        vector = {}
-        for i in range(1, self.bins + 1):
-            vector[i] = {
-                KEYS.ALPHA.name: 0,
-                KEYS.BETA.name: 0
-            }
-        for result in results:
-            color = results[result][KEYS.COLOR.name]
-            if results[result][KEYS.COUNT.name] >= self.threshold:
-                vector[color][KEYS.ALPHA.name] += results[result][KEYS.COUNT.name]
-            else:
-                vector[color][KEYS.BETA.name] += results[result][KEYS.COUNT.name]
-
-        return results, vector
-
-
-def rgb2gray(rgb):
-    return np.dot(rgb[..., :3], [0.2989, 0.5870, 0.1140])
-
-
-def visualize(img, results, threshold, alpha):
-    rows = len(img)
-    columns = len(img[0, 0:])
-    above = copy.deepcopy(img)
-
-    # above[i, j, :] = [0, 255, 0]
-
-    coherent_pixels = []
-
-    for result in results:
-        if results[result][KEYS.COUNT.name] >= threshold:
-            coherent_pixels += results[result][KEYS.PIXELS.name]
-
-    print(len(coherent_pixels))
-    for x, y in coherent_pixels:
-        above[x, y, :] = [0, 255, 0]
-
-    plt.imshow(img)
-    plt.imshow(above, interpolation='none', alpha=alpha)
-    plt.show()
-
-
-if __name__ == '__main__':
-    sys.setrecursionlimit(2000000000)
-    print(sys.getrecursionlimit())
-
-    graph = np.array([[2, 1, 2, 2, 1, 1],
-                      [2, 2, 1, 2, 1, 1],
-                      [2, 1, 3, 2, 1, 1],
-                      [2, 2, 2, 1, 1, 2],
-                      [2, 2, 1, 1, 2, 2],
-                      [2, 2, 1, 1, 2, 2]])
-
-    b = 3
-    t = 50
-    a = 0.5
-    img = np.array(io.imread('./A2/images/astronauts/Eileen-Collins-2.jpg'))  # [:100, :100]
-    gray = np.array(np.round(np.divide(rgb2gray(img), 256 / (b - 1))).astype(np.int))
-    gray = np.array(np.add(gray, 1))
-    print(type(gray))
-    print(np.array(gray))
-
-    row = len(gray)
-    col = len(gray[0])
-
-    g = Graph(row, col, gray, b, t)
-    print("Connected components: ")
-    g.detect_connected_components()
-    # print(g.connected_components)
-    res, vec = g.ccv()
-    print(res)
-    print(vec)
-
-    visualize(img, res, t, a)