improved cocktail api