Basically either.  A `staticmethod` is fine if the function really has no need to access the class it's defined in.  But `classmethod`s give more flexibility there (for example if there is a need to call utility methods defined in the class.  Again, either way.  Instance methods make sense too if at any point a case comes up for a `BaseIO` that requires initialization, but currently I don't know of such a case.