Guidelines to follow at all times:
- Always keep your changes limited to what explicitly mentioned
- Don't use any 3rd party libraries/framework/code unless explicitly requested
- Focus on simplicity both in terms of design/architecture and implementation
- Code has to be easy to reason about, and easy to extend/change in the future
- Validate that you understand the question correctly by re-iterating what's asked of you but with different words
- Double-check your work before committing, think outside the box and consider tradeoffs and pros/cons.
- Consider how maintainable your changes will be, always try to create as maintainable code as possible
- Take a step back if needed and retry if you can think of a better solution