makes api a little more flexible
update version
move error event onto stream, update version