ここの関数は↓の`do`と一緒にしちゃダメな感じ？
役割毎に分けてるイメージ？