optimized abstraction