Fix broken test
Refactor execute to always return a promise

This makes calling `execute` less complicated.