? Consider breaking up the code into smaller sections with comments so readers can understand better, instead of a big block of code ( @christopherluo )