add interface functions