refactor and create number module