Changed data provider to use protocol

Created protocol for data provider and put mongo implementation in
separate namespace.