It's so long! but there's no "TL;DR"ing this!!