move logic to user service