last version with test to review