borrow function implemented