optimization for interface