Extract abstract class