Refactorization part 4