Updated with some comments.