Refactored to abstract class method