comments and copyright added