Adding interfaces to Berthe

Added interfaces
Refactor Abstract to implement interfaces
Adding Base classes