Factory constructor rebuild