Please see notes.jacobrideout.net.