Fix #28 - Rewrite package.js to use Promises