improve stringf
fix errors and some new features