modified up to discussion