minor note, I think there are some type-o's in the code comments here.