<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def add_view(self, *args, **kwargs):
 """ Add a new view Parameters uid: string The uid of new view width: int The width of this of view on a 12 unit grid height: int The height of the this view. The height is proportional to the height of all the views present. x: int The position of this view on the grid y: int The position of this view on the grid initialXDoamin: [int, int] The initial x range of the view initialYDomain: [int, int] The initial y range of the view """

        new_view = View(*args, **kwargs)

        for view in self.views:
            if view.uid == new_view.uid:
                raise ValueError("View with this uid already exists")

        self.views += [new_view]
        return new_view