Further refactoring...