https://betterprogramming.pub/success-with-step-functions-finding-a-way-to-build-that-doesnt-suck-6d8ed9b0154e