everything done but that one weird error + tests