domain exception -> abstract