Trimmed down, some comments added.