have a play around at work, seperated add point into many functions