First part refactoring