refactoring #17