first round pass at numberset refactor, needs cleanup, tests and actual problem updates still