add self-initialize benchmark