Use callback instead of Promise