huge refactory! Changed abstraction to use Connection as a repository connection and Repository as an object representing the content from a repository location. Lack of some tests, should be improved