reintroduced ab func"