refactoring on #109