optimizations for extensibility