values and promises