refactoring the initializerz