adding promises/a+ support, and test cases