static function fromProvider($provider, $data) {
        $providername = __NAMESPACE__ . '\\providers\\' . ucfirst(strtolower($provider)) . 'Provider';
        return new self(new $providername($data));
    }