Further refactoring performed