add quacks method to travis, and add example implementation of promise APII