safer setter mechanism