almost working
clean