Initial code review

@evanstade Please review.  Hopefully the pull request flow will let you add comments.
Done. (til: e.g. often has a comma after it)