finished updates. code from april so sloppy, im sorry future self