Add callback support