optimize interface