あ、仕様の全体像をまだはっきり理解していないので、
僕が提示しているメソッド名や変数名に疑問を感じたら、正しい方向に直してくださって大丈夫です！