add comments and necessary license