I tried my best to fit the requirements.