Currently, there are only two modules that make up webqueue2_api: 1. `ECNQueue.py` 2. `api.py` However `ECNQueue.py` and `api.py` both have several moving parts that should be separated out into various packages and/or modules. `ECNQueue.py` has 3 distinct parts: 1. The item class which stores the basic python structure of an item 2. The queue class, which is a collection of multiple items 3. The parser, which interacts with the items stored on pier `api.py` has 5 distinct parts: 1. logging in, which allows an authorized user to access webqueue2 2. generating refresh tokens, which allows for an authorized user to stay logged in for a longer period of time 3. get the json representation of an item (from `ECNQueue.py`) 4. get the json representation of a queue (from `ECNQueue.py`) 5. get the json representation of all the queues and the number of items in each queue (from `ECNQueue.py`) As a preliminary structure, it might make sense to make `ECNQueue` and `api` sub-packages of `webqueue2_api`, with their respective functions outlined above, broken into their own modules: ``` ├─ setup.py │ ├───webqueue2_api │ ├───api │ │ ├───__init__.py │ │ ├───login.py │ │ ├───token_refresh.py │ │ ├───get_item.py │ │ ├───get_queue.py │ │ └───get_queue_list.py │ │ │ └───webqueueapi │ ├───__init__.py │ ├───Item.py │ ├───parser.py │ └───Queue.py │ └─ __init__.py ```