efficient vector set on self