# Layer 1: - Server Conector -> gets data as QVariant - One class: BRServerConnector - URL has to be given as string # Layer 2: - Translation layer - classes: - BRController - BRProvider - BRProvderDr # Layer 3 - Consisten data layer - classes: - BRWidget -> gets a provider, has an int load() function - BRCalendar - BRCompetition - BRCategory - BRResult - BRBoulderResult - BRLeadResult - BRSpeedResult # layer 4 - QML - Will call functions from Layer 2 and get Objects from Layer 3 # Season and Leagues handling 1. Calendar loads -> Calendar gets available seasons (which get available leagues) -> Data loader decides on default season and default league(s) -> Data loader loads default competitions 2. Calendar displays competitions 3. Current season is changed: -> calendar reloads -> Data loader sees that the availableSeasons are already 4. Current League is changed: -> calendar reloads