activate() should return a promise