Rewrote to use writeonly bool and enum_property, removed private members