full support for Q promise anti-pattern