修改用户及preference的封装