Refactor to use explicit Concrete/Abstract Class classes