updated with some clarifications in language