added callback, reload support