 }
 
 open class BicepsService {
-    open class func fetch<T: BicepsServiceable>(by provider: T, paramater: [String:Any]?, resultBlock: @escaping (_ result: Any?) -> Void) throws {
+    open class func fetch<T: BicepsProvidable>(by provider: T, paramater: [String:Any]?, resultBlock: @escaping (_ result: Any?) -> Void) throws {
         do {
             let biceps = try provider.fetch(paramater: paramater, resultBlock: resultBlock)
             

        }
    }
    
    open class func send<T: BicepsServiceable>(by provider: T, paramater: [String:Any]?, resultBlock: @escaping (_ result: Any?) -> Void) throws {
        do {
            let biceps = try provider.send(paramater: paramater, resultBlock: resultBlock)
            

}

// MARK: Service Layer
public protocol BicepsProvidable {
    func fetch(paramater: [String:Any]?, resultBlock: @escaping (_ result: Any?)->Void) throws -> Biceps
    func send(paramater: [String:Any]?, resultBlock: @escaping (_ result: Any?)->Void)  throws -> Biceps
}

public extension BicepsProvidable {
    func fetch(paramater: [String:Any]?, resultBlock: @escaping (_ result: Any?)->Void) throws -> Biceps {
        throw BicepsError.BicepsUnimplementedMethodError.fetch
    }
