1. version: All in one file no refactoring, 2. version: all in one file refactored in methods, 3. version: all in one file, refactored in class