fixed almost all