Mostly almost working

entirely