move base interface to public