add interface generator