self assigment error:
http://www.cplusplus.com/articles/y8hv0pDG/