add more comments for functions