update separable implimentation