Hope this stays readable, found it hella useful :)