すべての関数をnothrowにして返り値型をoptionalで統一すればいいよ