Why does this constructor take `*args, **kwargs`, I think it can just take some parameters.