refactoring 0001