Refactorization part 3