Added an outline of what's going on here