final backup

This version still need be further improved and verified