0.0.2 use provider instead of factory