Refactoring with better variable names
Refactoring main function

Using evolution recursive function instead of infinite loop.