turning some interfaces into abstracts.