moving gain control to its own module