正直今のところ頂いた回答の中では>>658さんの回答が模範解答でした。