logger provider, should solve most of #3