コードを多少、整理した