Forgive me for this being kinda bad, this is not really my best work, it's more of a test to learn from.