diff --git a/PROPOSAL_123456789.md b/PROPOSAL_123456789.md
deleted file mode 100644
index 1a602df..0000000
--- a/PROPOSAL_123456789.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# My proposal
-
-Lorem ipsum
diff --git a/PROPOSAL_20210782.md b/PROPOSAL_20210782.md
new file mode 100644
index 0000000..e7eacef
--- /dev/null
+++ b/PROPOSAL_20210782.md
@@ -0,0 +1,187 @@
+# Homework 5: Cats vs. Mice
+Name : Adelia Putri
+Student ID : 20210782
+URL : http://git.prototyping.id/20210782/homework5
+
+## Table of Content
+- [Homework 5: Cats vs. Mice](#homework-5-cats-vs-mice)
+ - [Table of Content](#table-of-content)
+ - [Game Description](#game-description)
+ - [Game Interface](#game-interface)
+ - [Game Mechanics](#game-mechanics)
+ - [Currency](#currency)
+ - [Character](#character)
+ - [Interactions List](#interactions-list)
+ - [Cat Roles](#cat-roles)
+ - [Mouse Roles](#mouse-roles)
+ - [Implementation Plan](#implementation-plan)
+ - [Challenges](#challenges)
+
+## Game Description
+**Cats vs. Mice** is a tower defense-style strategy game inspired by *Plants vs. Zombies*, redesigned with a cute kitchen theme. Players place cats on a tiled kitchen floor to stop waves of invading mice who are after the **Cheese Feast**, a table full of cheesy dishes at the leftmost side of the screen.
+
+The playerβs goal is to protect the **Cheese Feast** by defending against waves of incoming mice. To do this, the player can place different types of cats with special abilities to attack the mice.
+
+> π **Win Condition**: Successfully stops all the mice from reaching the **Cheese Feast**
+> β **Lose Condition**: A mouse reaches the **Cheese Feast**
+
+
+
+
+
+
+Source: [Plants vs. Zombies GOTY Edition](https://store.steampowered.com/app/3590/Plants_vs_Zombies_GOTY_Edition/)
+
+
+## Game Interface
+- **Background**: A 5x9 tiled kitchen floor with a light brown and white checker pattern
+ - Will be implemented using a 2D array
+- **Cat Panel**: A row of clickable cat icons showing the price of each cat
+- **Cheese Feast**: A table full of cheese dishes on the left side of the screen
+- **Mice Entrance**: Mice appear from a hole in the wall on the right side of the screen
+- **Defense Line**: Each row has a *robot vacuum* at the far left that activates once a mouse approached it, sweeping away all mice in that row
+- **Cheese** (currency): Drops from `π§βπ³ Chef Cat` or randomly from the top
+- **Progress Bar**: Showing the progress of the game, if the progress bar is full, the game is finished
+
+Below is the rough design of the game set:
+
+
+
+
+
+## Game Mechanics
+### Currency
+ - The currency of the game is **cheese** (replacing the sun in *Plants vs. Zombies*)
+ - Players can collect cheese produced by `π§βπ³ Chef Cat` or dropped randomly from above
+ - **Cheese** is used to buy different types of **[cats](#cat-roles)**, which can be placed on the 5x9 kitchen grid
+
+### Character
+1. Cats
+ - Objective: Protect the **Cheese Feast** by attacking, slowing, or generating cheese. Each cat has a different ability and price
+ - Cats can only be placed in empty tiles and can be replaced by new cats at a cost
+ - See the [Cat Roles](#cat-roles) below for further description
+2. Mice
+ - Objective: Mice enter from the right side and move left toward the **Cheese Feast**
+ - Mice will move forward in a straight line unless blocked by a cat
+ - If a mouse reaches a cat, it will spray the cat with a water gun. When the cat is wet enough, the cat will run away, which means the mouse defeated the cat
+ - See the [Mouse Roles](#mouse-roles) below for further description
+
+### Interactions List
+| **Interaction**| **Trigger** | **Result**|
+|----------------|-------------|-----------|
+| Place cat | Mouse click on UI + tile | Deduct cheese, place cat |
+| Cat shoots yarn | Timer per cat | Add a yarn to the grid |
+| Yarn hits mouse | Collision | Mouse takes damage |
+| Mouse reaches cat | Collision | Mouse sprays cat, cat runs away |
+| Mouse reaches robot vacuum | Collision | Robot vacuum move to the right and remove all mice in the rows |
+| Cheese pick up | Mouse click on cheese icon | Increase cheese count |
+| Remove cat | Mouse click on UI + cat | Remove cat from the tile |
+| Mouse reaches left edge | Position check | Trigger loss state |
+| All mice defeated | Mouse count check | Trigger win state |
+
+
+## Cat Roles
+
+| Icon | Cat Type | Ability | Cheese Cost |
+|------|----------|---------|-------------|
+| π§Ά | Single Yarn Cat | Shoots 1 yarn ball every 2 seconds | 100 |
+| π§Άπ§Ά | Double Yarn Cat | Shoots 2 yarn balls (double damage) | 200 |
+| π€ | Sleepy Cat | Sleeps until touched, then instantly defeats mouse that touched it | 150 |
+| π§βπ³ | Chef Cat | Produces cheese every few seconds | 50 |
+| βοΈ | Ice Cat | Slows down mice by throwing snowballs | 150 |
+
+Each cat will be an object with few common properties and methods as follows:
+```js
+class Cat {
+ constructor(x, y, type) {
+ this.x = x;
+ this.y = y;
+ this.type = type; // 'yarn', 'double', 'sleepy', 'chef', 'ice'
+ this.cost = 0;
+ this.health = 100;
+ }
+ draw() { ... }
+ update() {
+ if (this.type === 'chef') this.generateCheese();
+ else if (this.type === 'yarn') this.shoot();
+ else if (this.type === 'double') {
+ this.shoot();
+ this.shoot();
+ }
+ // Implementation for Chef Cat and Ice Cat
+ }
+ shoot() { ... }
+ generateCheese() { ... }
+}
+```
+
+## Mouse Roles
+
+| Icon | Mouse Type | Description | Appearance |
+|------|--------------|-------------|------------|
+| π | Basic Mouse | Walks slowly, standard HP (100) | Early Game |
+| βοΈ | Helmet Mouse | Wears cheese pot as helmet, high HP (150) | Mid Game |
+| πββοΈ | Sporty Mouse | Moves quickly (1.25x Basic Mouse), low HP (75) | Mid Game |
+| π | Boss Mouse | Very slow, very high HP (500)| Late Game |
+
+Each mouse will be an object with few common properties and methods as follows:
+
+```js
+class Mouse {
+ constructor(row, type) {
+ this.row = row;
+ this.x = CANVAS_WIDTH;
+ this.type = type; // basic, helmet, sporty, boss
+ this.speed = 1;
+ this.health = 100;
+ }
+
+ move() {...}
+
+ attack(cat) {...}
+
+ takeDamage(amount) {...}
+
+ die() {...}
+}
+```
+
+## Implementation Plan
+The game will be implemented in JavaScript using p5.js. The project will follow an object-oriented approach, using classes and modular files to organize different parts of the game.
+
+States to be updated every frame:
+- Cat's state: shooting, generating cheese
+- Mice's movement and health points
+- Cheese production
+- Checking win/lose condition
+
+To track the game, a class `CatsVsMice` will be roughly implemented as follows
+```js
+class CatsVsMice {
+ constructor() {
+ this.grid = createGrid();
+ this.cats = [];
+ this.mice = [];
+ this.cheese = 50;
+ this.play = "play"; // option: "play", "win", "lose"
+ }
+
+ update() {
+ this.updateCats();
+ this.updateMice();
+ this.updateCheese();
+ this.checkWinLose();
+ }
+}
+```
+
+Additional Libraries and Sources:
+- Animation: p5.play
+- Sound Effects: p5.sound
+- Character visual: open sources like https://opengameart.org/ or will be manually drawn
+
+
+## Challenges
+1. Collision detection between objects (mouse and yarn, mouse and cat)
+2. Applying the animation
+3. Handling overlapping objects
\ No newline at end of file
diff --git a/assets/cvm.jpeg b/assets/cvm.jpeg
new file mode 100644
index 0000000..120bef4
Binary files /dev/null and b/assets/cvm.jpeg differ
diff --git a/assets/pvz.jpg b/assets/pvz.jpg
new file mode 100644
index 0000000..9616f69
Binary files /dev/null and b/assets/pvz.jpg differ