.then callbacks are now handled as real promises