Impr #2 simple promise implementation