#102 refactoring