use new style of callback(), no Return
redo callback architecture
redo callback error handling
bump version