added some basic tests but theyre messy dont look at them
tests fail if there are any compiler warnings
neatened up tests