Added Tests and other stuff, should have commited more but i didnt