backports two methods