refacotr to support multiple users
refactor