provide functions for better usability
enhance tests
optimize
fix spaces
raise branch version
fix conflict