[#838] refactor