###code: https://github.com/FlameOfIgnis/cng-334
Hocam, i have added some extras along with the task specifications because the explanation was too short and ambigious. So i have added some extra classes and functionality to it while programming the task.