Added explanation of required vs optional methods.