start moving towards a event stream API
simplify structure
new version of harvest with event stream interface