kernel restructure