removing strict protocol definition