some improvments on base interface