exec func and reworks