Point1 completed, Point2 and 3 added, not tested though