Update structure to allow for errors and callbacks
Don't do anything if no callback supplied