implemented needle library