Uvm_scoreboard vs uvm_subscriber

Hi,

  1. In uvm_scoreboard, we can define & initialize analysis_export to implement write function. But what is the use of uvm_subscriber with built-in analysis_export?
  2. user defined scoreboard should be extended from uvm_scoreboard or uvm_subscriber? which is the best option?
    would you please clarify it.