working on use case #1 and #2 at the same time.