Fleshing out design (now everything is linting and passing unit tests).