Updated with comments.