Made into abstract class in order to circumvent having to add overrided methods