Moving more logic to abstract class