decouple and deprecation