[refactor] part 2