Update documentation and add file headers