start to rationalise the stream functions