Adding interfaces for repositories

This PR aims to add interfaces for repositories (which lie in the bundle) so that the Component code does not reference Bundle code