better decoupling