Added tests, still fix mistakes