added base interface