added a linear graient class