hard to test because its so long..