missed 2 setters checking checking not equal before setting.
make enum unsigned int