add CPP and assembly