a workable demo (just for happy path). more test cases are required for different failure models.