added gradient capabilities