better timing, better reporting, refactoring
merge