changes! so instead of an interface, using abstract class! :)