What's the difference between Trace and Backend? why two classes?