Second refactoration...