add getters and setters
modify remain room user after exit
replace packer and new protocols