Ensure no magic by using 's' (rather than 'scope') as argument name in callbacks
Add test "notices when the value becomes an object"
Refactor tests a bit