Protocol methods changed to optional in case I only use one side.