stable version
code clean