half-finished execute function