Separate Responsibilities for Magento Provider

To fix #68