Passes all tests. No leaks. Valgrind Errors though