use promises as state values