Added some tests, refactored some tests, removed some tests which are pointless or won't ever be possible