refactored code, added SufficientStatistics class, bam_driver will replace infinite_driver