Further refactoring..