Refactored to use factory method instead of initializer