adds a callback feature