improving decoupling