トレイトから実装を分離