more comments, more functional