make gradient optional