some refactoring, numbers also combine into bigger numbers now