Add a single message source provider implementation

Not really satisfied with it though.