added base interface struct