<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def add_tier(self, coro, **kwargs):
 """ Add a coroutine to the cell as a task tier. The source can be a single value or a list of either `Tier` types or coroutine functions already added to a `Tier` via `add_tier`. """

        self.assertNotFinalized()
        assert asyncio.iscoroutinefunction(coro)
        tier = self.Tier(self, coro, **kwargs)
        self.tiers.append(tier)
        self.tiers_coro_map[coro] = tier
        return tier