use more portable cin.ignore instead of cin.sync
extract struct from number's data members; push to details namespace
make number data member private
fix up integer types