add callback support and update test data