Fuuuck ordered a 12 thinking theyd fit the same as v 1 . <| sep |> Rock Band Rivals is Rock Band 4 . They just changed the name of the game with their last big update . People that owned vanilla RB 4 had to pay $ 20 for the Rivals update , which adds a campaign mode among other gameplay additions . <| sep |> No worries you are correct that having a single save function with a type switch would be a bad design . There ' s two approaches I would consider You can define a separate method on urlDB for each type You can define a saveToDB method on each typeThe latter approach is reminiscent of other serialization code , like the json . Marshaler interface . This is good when you plan to be encoding the data in multiple places . However , I don ' t think it ' s a good fit for storing the data in a database . The reason is that different databases may have a different schema for storing a particular type . So I think it makes more sense to group all the saveX methods under the single urlDB type , since all the methods must operate within the same schema . Also , re global vars Part of the reason I ' m averse to them is that you can ' t see that they are being modified just by looking at a function ' s arguments . Whereas if a function is a method on a db type , you can assume that it will read or write to the database .