optimize --call interface