Decoupling ChatInterface

Complete decoupling of the ChatInterface and some refactorings

I think we should ditch the getters and implement tests in setters. Better encapsulation.