careful not to instantiate a Cloud if the extending class is abstract