added a load of SHIT