Made some delegate methods optional/required.