Changed Create method to not populate property without setter
CreateViaConstructor throw ConstructiorNotFoundException if parameters don't match
Added factory and IPlant interface