Use waitgroup, make Add blocking