COMPLETELY REDONE USING STACK
First Commit