This post is a work in progress.