separate runner script
some refactor
add some tests
explicit better implicit
requests, for more pretty code