The {0} definitions in the signature and implementation are not compatible because the implementation defines a struct but ...