here it is

Might make changes later, may possibly make it have OOP