basic functions on interface