fix big bug
refactoring : improve readability
add long number system