Minor refactoring of ISource, placing tuple creation in one place

Which is potentially useful, if/when we start supporting keys other than String ones, probably there will be some nested class Utils that will take care of key conversions.
Add docstrings