This is almost working.