Changed Abstract Class to Interfaces.