#3 Some code documentation

#2 Big refactoring to introduce wrapping layer for result/input object, added default data objects for Map and Properties