Tested: added tests for destination provider
Refactored: mader destination provider public