Encapsulated different sources with their own methods