Why are you making this an abstract class?