Refactoring part one ...