more comments, refactor