more functions, new version.