developing use cases