to interface function