add a soft ref, to handle overloading