put DSP part into own abstraction (for reusability)
use abstraction for DSP part