refactor #19