refactoring.
add callback setter. fix #16.