refactoring #21