new header and remaining changes