moved giving/getting logic out of syncUser