I know there are many writeups about this, but this is a note to self kind of thing. Feel free to fork it!