restructured basic_number