Updated Final, basically finished.