working and commented