This is supposed to be an abstract class!! :D