Refactored to use callbacks and strip user values instead of raw pipes.