refactoring
可能な限り move を行う
fd のリークを修正