base interface