gradients now lazy instantiated