New Classes and interface added

We added a bunch of new classes to make tweets more abstract and added a
data manager with an interface to segregate the code and introduce
higher level MVC