add collection abstract class + add oauth provider models