modified first half of the use cases