from typing import Protocol, BinaryIO

class Storage(Protocol):
    def store(self, file_path: str, data: bytes):
        pass

    def retrieve(self, file_path: str):
        pass

    def remove(self, file_path: str):
        pass

class StorageManager():
    storage: Storage = None

    def __init__ (self, storage: Storage):
        self.storage = storage

    def store(self, file_path: str, data: BinaryIO):
        return self.storage.store(file_path, data)

    def retrieve(self, file_path: str):
        return self.storage.retrieve(file_path)

    def remove(self, file_path: str):
        return self.storage.remove(file_path)
