Switch to abstract class