Add alternative implementations