#001 refactoring