new version with tests