add ReadPreference to AggregationOptions
parameterize closeSession