Changed the namespaces and a few type's name for the sake of better understanding of the responsibilities of those types