rewrite with OOP
divied state.py SimpleQmap/qmap.py
divied SimpleQmap/qmap.py SImpleQmap/state.py
some update
add doctest