fixed and commented