i think it is almost working