moving some methods around for a big refactor
set flag defaults to the values I found acceptable while testing.
metrics now reporting