change a lot of stuff but still working