Everything works. Still Id like to optimize shit but whatever