Added flexability to walk target, allowing it to be a function, an object with a `walkNotify` function, or an object with an `emit` function