invoke abstraction for reducible