gradient abstract