modified User cpp