see below about handling errors and callbacks