starting to separate the echo processing into a shared component