Updated and almost working.