Through promise generator functions