more comments and more refactoring