Refactored to use initializor