gradient prototype