stable version
some changes