re-implement post asm
reimplement after asm
reimplement after asm
reimplement after asm
iremove cpp vestiges