Can describe the difference between run() and start()? I understand it as run() is used with default execution, (with no overrides) start() is used when you want to override process() or custom buffers. Is the above correct? Can you update your documentation?