this is just a big mess of testing