Making Provider abstract