OH god this code sucks