refactor by review