THIS WAS PAINFULLY DIFFICULT TO EDIT