Refactored so shit isn't backwards