simplified the implementation of Borrow