adding promises interface and tests