returns a promise when used a package
added q