Works but unsure if everything does.
Fixed up bugs all over the place