kept only promises, added timing