refactoring #39