TODO: Write a Promise Class.