added return types to methods + split reading params into 2 iterators