don't allow calling start() without a callback