(#1619) - allow methods to return promises

preliminary and lacking tests