refernce実装にさしかえ