---
id: 685c1eba966c6396850736ea
title: Step 13
challengeType: 20
dashedName: step-13
---

# --description--

While users can send emails and have inboxes, we need a dedicated class to manage inbox operations efficiently. 

The `Inbox` class will store a list of emails and provide methods to add new emails, list all emails, and manage them.

Create a new class called `Inbox` with an `__init__` method that initializes an empty list called `emails`.

# --hints--

You should create an `Inbox` class.

```js
({
    test: () => {
        assert(runPython(`_Node(_code).has_class("Inbox")`));
    }
})
```

The `Inbox` class should have an `__init__` method that takes `self` as a parameter.

```js
({
    test: () => {
        assert(runPython(`_Node(_code).find_class("Inbox").find_function("__init__").has_args("self")`));
    }
})
```

You should initialize `self.emails = []` in the `Inbox` class `__init__` method.

```js
({
    test: () => {
        assert(runPython(`_Node(_code).find_class("Inbox").find_function("__init__").find_variable("self.emails").is_equivalent("self.emails = []")`));
    }
})
```

# --seed--

## --seed-contents--

```py
class Email:
    def __init__(self, sender, receiver, subject, body):
        self.sender = sender
        self.receiver = receiver
        self.subject = subject
        self.body = body
        self.read = False

    def mark_as_read(self):
        self.read = True

class User:
    def __init__(self, name):
        self.name = name
        self.inbox = []

    def send_email(self, receiver, subject, body):
        email = Email(sender=self, receiver=receiver, subject=subject, body=body)

--fcc-editable-region--

--fcc-editable-region--
```
