A very small promise interface