Removed Interface and used a base class instead