extract user managing to extra class and make the properties private