implement user

thừa quá nhiều tab, sử dụng space thì cần thống nhất