Refactorization part 2.5