Switch to using weak only when it's available