interface extracted