update todo
refactoring: change callback mechanism