[#102] [#103] refactoring