pretty much finished, don´t look at my tests YET