Step 2, baby steps
step 3 first i/o
step 4 first async
pass step 4 reinventing the wheel :/
step 4 with path module