test abstraction class