refactor : add User domain and relevant stuff