Fix Promise implementation to not suck