Fixes #49.
Preview | Diff
@bzbarsky I think this is ready for another review.
Sorry for the lag; work week interfered... Will look sometime this week.