would be nice to have a comment or doc saying that this constructor is called by reflection