update this crappy code yay!