avoiding overloading and simplifying promises