almost working with set