protocol implementation error vs specs fix