fix use __construct change for use factory method