def prepend(item)
      return initialize(item) if empty?
      Node.new(item, right: head).tap { |new_head|
        head.left = new_head
        self.head = new_head