added custom vector class, that we could use instead of numpy to compute dot product and norm. This would remove the dependency on Numpy (which is huge), at the expense of being slower. We should run some tests so check if the performance decrease is noticeable or not (I suspect not)