refactoring for #18